泰晓科技 -- 聚焦 Linux - 追本溯源,见微知著!


泰晓资讯·2月 / 第二期 / 2020

Wang Chen 创作于 2020/02/07

“泰晓资讯”,广泛报道 “Linux/开源” 业界资讯。欢迎广大读者投递相关资讯来源和素材,本站将进一步收集整理后发布给大家。

Linux Kernel 5.6 已准备好应对 2038 年问题

On top of all the spectacular work coming with Linux 5.6, here is another big improvement that went under my radar until today: Linux 5.6 is slated to be the first mainline kernel ready for 32-bit systems to run past the Year 2038!

On 19 January 2038 is the “Year 2038” problem where the Unix timestamp can no longer fit within a signed 32-bit integer. For years the Linux kernel developers have been working to mitigate against this issue also commonly referred to as the “Y2038” problem, but with Linux 5.6 (and potentially back-ported to 5.4/5.5 stable branches) is the first where 32-bit kernels should be ready to go for operating past this threshold.

新十年伊始,Linux Kernel 5.6 已经准备好着手解决将在下一个十年后到来的 2038 年问题(又称 “Y2038” 或 “Unix Y2K” 问题)。Linux 5.6 也成为第一个为 32 位系统支持运行到 2038 年之后的主线内核。

Y2038 问题与 “千年虫” 问题类似,它可能会导致某些软件在 2038 年 1 月 19 日 3 时 14 分 07 秒之后无法正常工作。届时,在大部分 32 位操作系统上,依据 time_t 结构体的定义,时间将会 “绕回” 且在内部被表示为一个负数,并造成程序无法工作,因为它们无法识别 2038 年,而可能会跳回 1970 年或 1901 年。

现阶段,还没有针对 2038 年问题的通用解决方案。Linux 5.6 已率先做好准备,并极有可能反向移植到 5.4/5.5 的稳定分支。

在 Linux 开发人员 Arnd Bergmann 寄给 Linus Torvalds 的邮件中,他提到,Linux Kernel 5.6 应该作为首个基础版本,支持 32 位系统能够运行到 2038 年以后。他提出的 PR 包括对 time_t 的更改,即更改存储秒数(带符号的 32 位整数)。

关键词: Linux,Y2038

“抢夺(Grabbing)” 另一个进程的文件描述符

In response to a growing desire for ways to control groups of processes from user space, the kernel has added a number of mechanisms that allow one process to operate on another. One piece that is currently missing, though, is the ability for a process to snatch a copy of an open file descriptor from another. That gap may soon be filled, though, if the pidfd_getfd() system-call patch set from Sargun Dhillon is merged.

当前内核中如果一个进程希望打开另一个进程中已经打开的同一个文件,可以采用的方法是通过访问 /proc 文件系统,即访问 /proc/PID/fd/FD。但这么做并不总是可行的,譬如尝试打开(open) socket 或者 anonymous 的 fd,内核会返回 ENXIO 错误;另外通过 proc 文件系统去打开文件依然会存在 “pid recycling” 竞争的问题。

Sargun Dhillon 的工作是实现了一个新的系统调用:int pidfd_getfd(int pidfd, int targetfd, unsigned int flags); 其中第一个参数 pidfd 用于指定目标进程对应的文件描述符,第二个参数 targetfd 用于指定我们希望访问的目标进程已经打开的文件,该函数执行成功时,函数的返回值即为对应目标进程所打开的文件的一个本进程的文件描述符,这个函数的第三个参数 flags 目前暂时没有用,缺省为 0,以后可以扩展,譬如指定在将目标进程中的文件描述符拷贝到调用进程中后直接关闭目标进程中的文件描述符,这就好比由调用进程将目标进程中的文件描述符给抓取过来一样,也是本文标题中将这个系统调用比喻为 Grabbing 的意思。这个补丁目前已经进化到第九个版本,很有能随 5.6 或者 5.7 版本合入内核主线。更多内容请阅读原文 “Grabbing file descriptors with pidfd_getfd()”

关键词: Linux,pidfd

Cable Haunt 漏洞使2亿多博通 modem 面临被劫持风险

Hundreds of millions of cable modems are vulnerable to critical takeover attacks by hackers halfway around the world, researchers said. The attacks work by luring vulnerable users to websites that serve malicious JavaScript code that’s surreptitiously hosted on the site or hidden inside of malicious ads, researchers from Denmark-based security firm Lyrebirds said in a report and accompanying website. The JavaScript then opens a websocket connection to the vulnerable cable modem and exploits a buffer overflow vulnerability in the spectrum analyzer, a small server that detects interference and other connectivity problems in a host of modems from various makers. From there, remote attackers can gain complete control over the modems, allowing them to change DNS settings, make the modem part of a botnet, and carry out a variety of other nefarious actions.

博通电缆调制解调器的固件被曝出名为 “Cable Haunt” 的漏洞,仅在欧洲就影响了多达2亿个家庭宽带网关,使其面临被远程劫持的风险。漏洞编号为 CVE-2019-19494。


研究人员表示:“据估计,仅在欧洲就有2亿个电缆调制解调器。几乎没有电缆调制解调器是安全的(若不进行安全更新)。而且,我们目前很难给出一个准确的影响范围,因为该漏洞存在的软件被大量引用,许多不同的厂商都把它加入电缆调制解调器的固件中,我们很难确定漏洞到底影响了哪些设备。对于不同制造商的产品,漏洞的表现形式可能有所不同。” 来自丹麦的研究人员演示了如何利用这些漏洞来进行实际攻击。先欺骗受害者打开一个特别精心设计 Web 页面(其中包含恶意JS代码)或恶意邮件,然后恶意代码会连接到本地网络中脆弱的调制解调器内置的 Web 服务,最后通过覆盖堆栈并触发缓冲区溢出来更改调制解调器的处理器中寄存器的内容。通过以上一系列操作,最后将重定向到请求所包含的恶意代码,进而执行大量非法操作。Cable Haunt 漏洞影响了使用博通芯片且运行在开源嵌入式可配置操作系统的电缆调制解调器。专家们还公布了一份已知的受影响的宽带网关列表。专家指出,只有对防火墙进行非常具体的配置才能拦截这种攻击,但他们怀疑几乎没有人会进行这种设置。

关键词: 漏洞,Cable Haun


资讯内容部分来自 “LWN.net“。如果您对某些 LWN 文章感兴趣(譬如希望获得全文翻译的)请扫描二维码加微信联系我们:

tinylab wechat

Read Album:

Read Related:

Read Latest: