漏洞标题
netfilter: nft_inner: 在软中断下处理percpu区域不当
漏洞描述信息
在Linux内核中,已修复以下漏洞:
netfilter: nft_inner: softirq下对percpu区域处理不当
Softirq可以中断进程上下文中正在处理的数据包,而该数据包正在遍历包含内部头部偏移量的percpu区域。
在恢复percpu内部头部偏移量之前,禁用bh并执行三项检查以验证该percpu区域对此skbuff有效:
1) 如果设置了NFT_PKTINFO_INNER_FULL标志,则此skbuff已经为获取内部头部进行了解析并注册。
2) 使用skbuff指针作为cookie验证percpu区域是否指向此skbuff。如果有cookie不匹配,则需要重新解析此skbuff。
3) 最后,验证percpu区域是否指向这种隧道类型。
只有在通过这三项检查后,才会将percpu区域恢复到栈上副本并重新启用bh。
在获取内部头部之后,将栈上副本存储回percpu区域。
CVSS信息
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
漏洞类别
输入验证不恰当
漏洞标题
netfilter: nft_inner: incorrect percpu area handling under softirq
漏洞描述信息
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nft_inner: incorrect percpu area handling under softirq
Softirq can interrupt ongoing packet from process context that is
walking over the percpu area that contains inner header offsets.
Disable bh and perform three checks before restoring the percpu inner
header offsets to validate that the percpu area is valid for this
skbuff:
1) If the NFT_PKTINFO_INNER_FULL flag is set on, then this skbuff
has already been parsed before for inner header fetching to
register.
2) Validate that the percpu area refers to this skbuff using the
skbuff pointer as a cookie. If there is a cookie mismatch, then
this skbuff needs to be parsed again.
3) Finally, validate if the percpu area refers to this tunnel type.
Only after these three checks the percpu area is restored to a on-stack
copy and bh is enabled again.
After inner header fetching, the on-stack copy is stored back to the
percpu area.
CVSS信息
N/A
漏洞类别
N/A
漏洞标题
Linux kernel 安全漏洞
漏洞描述信息
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于netfilter:nft_inner子系统中percpu区域处理不当的问题。
CVSS信息
N/A
漏洞类别
其他