CVE-2023-52906 in Linux
요약
\~에 의해 VulDB • 2026. 05. 31.
리눅스 커널에서 다음 취약점이 해결되었습니다:
net/sched: act_mpls: 실패한 속성 검증 중 경고 수정
'TCA_MPLS_LABEL' 속성은 'NLA_U32' 타입이지만, 검증 타입은 'NLA_VALIDATE_FUNCTION'입니다. 이는 'struct nla_policy' 위의 주석에 따르면 유효하지 않은 조합입니다:
" `validate' 필드의 의미, NLA_POLICY_VALIDATE_FN을 통해 사용: NLA_BINARY 속성에 대해 호출되는 검증 함수. 그 외 모든 경우 미사용 - 하지만 이는 union임을 유의하십시오. "
속성 검증이 실패할 때 nla_get_range_unsigned()에서 경고[1]가 트리거될 수 있습니다. 'NLA_U32' 타입임에도 불구하고, 정책의 관련 'min'/'max' 필드는 'validate' 필드에 의해 별칭(alias)이 지정되어 음수입니다.
위 주석 및 NLA_POLICY_VALIDATE_FN()의 모든 다른 사용자와 일관되도록 속성 타입을 'NLA_BINARY'로 변경하여 수정합니다. 그 결과, 길이 검증은 검증 함수로 이동됩니다.
MPLS 테스트에서 회귀(regrssion) 없음:
# ./tdc.py -f tc-tests/actions/mpls.json [...]
# echo $? 0
[1]
WARNING: CPU: 0 PID: 17743 at lib/nlattr.c:118 nla_get_range_unsigned+0x1d8/0x1e0 lib/nlattr.c:117 Modules linked in: CPU: 0 PID: 17743 Comm: syz-executor.0 Not tainted 6.1.0-rc8 #3 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.13.0-48-gd9c812dda519-prebuilt.qemu.org 04/01/2014 RIP: 0010:nla_get_range_unsigned+0x1d8/0x1e0 lib/nlattr.c:117 [...]
Call Trace: __netlink_policy_dump_write_attr+0x23d/0x990 net/netlink/policy.c:310 netlink_policy_dump_write_attr+0x22/0x30 net/netlink/policy.c:411 netlink_ack_tlv_fill net/netlink/af_netlink.c:2454 [inline]
netlink_ack+0x546/0x760 net/netlink/af_netlink.c:2506 netlink_rcv_skb+0x1b7/0x240 net/netlink/af_netlink.c:2546 rtnetlink_rcv+0x18/0x20 net/core/rtnetlink.c:6109 netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
netlink_unicast+0x5e9/0x6b0 net/netlink/af_netlink.c:1345 netlink_sendmsg+0x739/0x860 net/netlink/af_netlink.c:1921 sock_sendmsg_nosec net/socket.c:714 [inline]
sock_sendmsg net/socket.c:734 [inline]
____
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.