ರಿಮೋಟ್ ಕರ್ನಲ್ ಕ್ರ್ಯಾಶ್ ಅನ್ನು ಅನುಮತಿಸುವ 0-ದಿನದ Linux IPv6 ಸ್ಟಾಕ್ ದುರ್ಬಲತೆ

ಲಿನಕ್ಸ್ ಕರ್ನಲ್‌ನಲ್ಲಿ ಸರಿಪಡಿಸದ (0-ದಿನ) ದುರ್ಬಲತೆಯ (CVE-2023-2156) ಕುರಿತು ಮಾಹಿತಿಯನ್ನು ಬಹಿರಂಗಪಡಿಸಲಾಗಿದೆ, ಇದು ವಿಶೇಷವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಿದ IPv6 ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು (ಪ್ಯಾಕೆಟ್-ಆಫ್-ಡೆತ್) ಕಳುಹಿಸುವ ಮೂಲಕ ಸಿಸ್ಟಮ್ ಅನ್ನು ನಿಲ್ಲಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. RPL (ಕಡಿಮೆ-ಶಕ್ತಿ ಮತ್ತು ನಷ್ಟದ ನೆಟ್‌ವರ್ಕ್‌ಗಳಿಗಾಗಿ ರೂಟಿಂಗ್ ಪ್ರೋಟೋಕಾಲ್) ಪ್ರೋಟೋಕಾಲ್‌ಗೆ ಬೆಂಬಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ ಮಾತ್ರ ಸಮಸ್ಯೆ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ, ಇದನ್ನು ವಿತರಣೆಗಳಲ್ಲಿ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಮುಖ್ಯವಾಗಿ ಹೆಚ್ಚಿನ ಪ್ಯಾಕೆಟ್ ನಷ್ಟದೊಂದಿಗೆ ವೈರ್‌ಲೆಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಎಂಬೆಡೆಡ್ ಸಾಧನಗಳಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ.

RPL ಪ್ರೋಟೋಕಾಲ್ ಪಾರ್ಸಿಂಗ್ ಕೋಡ್‌ನಲ್ಲಿನ ಬಾಹ್ಯ ಡೇಟಾದ ತಪ್ಪಾದ ಪ್ರಕ್ರಿಯೆಯಿಂದ ದುರ್ಬಲತೆಯು ಉಂಟಾಗುತ್ತದೆ, ಇದು ಪ್ರತಿಪಾದನೆಯ ವೈಫಲ್ಯಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ ಮತ್ತು ಕರ್ನಲ್ ಪ್ಯಾನಿಕ್ ಸ್ಥಿತಿಗೆ ಹೋಗುತ್ತದೆ. k_buff (ಸಾಕೆಟ್ ಬಫರ್) ರಚನೆಯಲ್ಲಿ IPv6 RPL ಪ್ಯಾಕೆಟ್ ಹೆಡರ್ ಅನ್ನು ಪಾರ್ಸಿಂಗ್ ಮಾಡುವುದರಿಂದ ಪಡೆದ ಡೇಟಾವನ್ನು ಇರಿಸಿದಾಗ, CmprI ಕ್ಷೇತ್ರವನ್ನು 15 ಗೆ, Segleft ಕ್ಷೇತ್ರವನ್ನು 1 ಗೆ ಮತ್ತು CmprE ಗೆ 0 ಗೆ ಹೊಂದಿಸಿದರೆ, ವಿಳಾಸಗಳೊಂದಿಗೆ 48-ಬೈಟ್ ವೆಕ್ಟರ್ ಅನ್ನು ಡಿಕಂಪ್ರೆಸ್ ಮಾಡಲಾಗುತ್ತದೆ. 528 ಬೈಟ್‌ಗಳಿಗೆ ಮತ್ತು ಬಫರ್‌ಗಾಗಿ ನಿಯೋಜಿಸಲಾದ ಮೆಮೊರಿಯು ಸಾಕಾಗುವುದಿಲ್ಲ ಎಂಬ ಪರಿಸ್ಥಿತಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, skb_push ಫಂಕ್ಷನ್, ಡೇಟಾವನ್ನು ರಚನೆಗೆ ತಳ್ಳಲು ಬಳಸಲಾಗುತ್ತದೆ, ಡೇಟಾದ ಗಾತ್ರ ಮತ್ತು ಬಫರ್ ನಡುವಿನ ಅಸಮಂಜಸತೆಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ, ಬಫರ್ ಗಡಿಯನ್ನು ಮೀರಿ ಬರೆಯುವುದನ್ನು ತಡೆಯಲು ಪ್ಯಾನಿಕ್ ಸ್ಥಿತಿಯನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ.

ಉದಾಹರಣೆ ಶೋಷಣೆ: # ನಾವು scapy.ಎಲ್ಲಾ ಆಮದು * ಆಮದು ಸಾಕೆಟ್‌ನಿಂದ ಪ್ಯಾಕೆಟ್ ಅನ್ನು ರೂಪಿಸಲು Scapy ಅನ್ನು ಬಳಸುತ್ತೇವೆ # ನಿಮ್ಮ LAN ಇಂಟರ್ಫೇಸ್ DST_ADDR = sys.argv [6] SRC_ADDR = DST_ADDR # ಪ್ಯಾಕೆಟ್ ಕಳುಹಿಸಲು ನಾವು ಸಾಕೆಟ್‌ಗಳನ್ನು ಬಳಸುತ್ತೇವೆ sockfd = ಸೋಕೆಟ್ ಸಂಕುಚಿತ ವಿಳಾಸ # Segleft = 1 ವರ್ಧನೆಯನ್ನು ಪ್ರಚೋದಿಸಲು # lastentry = 6xf3 CmprI ಅನ್ನು 3 ಗೆ ಮತ್ತು CmprE ಗೆ 15 p = IPv1(src=SRC_ADDR, dst=DST_ADDR) / IPv0ExtHdrSegmentRouting=0/IPv15ExtHdrSegmentRouting=0 :", "a6::", "a6::"], segleft=3, lastentry=8xf7) # ಈ ದುಷ್ಟ ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಕಳುಹಿಸಿ sockfd.sendto(bytes(p), (DST_ADDR, 6))

2022 ರ ಜನವರಿಯಲ್ಲಿ ಕರ್ನಲ್ ಡೆವಲಪರ್‌ಗಳಿಗೆ ದುರ್ಬಲತೆಯ ಬಗ್ಗೆ ತಿಳಿಸಲಾಗಿದೆ ಮತ್ತು ಕಳೆದ 15 ತಿಂಗಳುಗಳಲ್ಲಿ ಅವರು ಮೂರು ಬಾರಿ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ಪ್ರಯತ್ನಿಸಿದ್ದಾರೆ, ಸೆಪ್ಟೆಂಬರ್ 2022, ಅಕ್ಟೋಬರ್ 2022 ಮತ್ತು ಏಪ್ರಿಲ್ 2023 ರಲ್ಲಿ ಪ್ಯಾಚ್‌ಗಳನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿದರು, ಆದರೆ ಪ್ರತಿ ಬಾರಿಯೂ ಪರಿಹಾರಗಳು ಸಾಕಾಗುವುದಿಲ್ಲ ಮತ್ತು ದುರ್ಬಲತೆಯನ್ನು ಪುನರುತ್ಪಾದಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಅಂತಿಮವಾಗಿ, ದುರ್ಬಲತೆಯನ್ನು ಸರಿಪಡಿಸಲು ಕೆಲಸವನ್ನು ಸಂಘಟಿಸಿದ ZDI ಯೋಜನೆಯು, ಕರ್ನಲ್‌ನಲ್ಲಿ ಕೆಲಸದ ಫಿಕ್ಸ್ ಲಭ್ಯವಾಗುವವರೆಗೆ ಕಾಯದೆ ದುರ್ಬಲತೆಯ ಬಗ್ಗೆ ವಿವರವಾದ ಮಾಹಿತಿಯನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲು ನಿರ್ಧರಿಸಿತು.

ಹೀಗಾಗಿ, ದುರ್ಬಲತೆ ಇನ್ನೂ ಸ್ಥಿರವಾಗಿಲ್ಲ. ನಿರ್ದಿಷ್ಟವಾಗಿ, 6.4-rc2 ಕರ್ನಲ್‌ನಲ್ಲಿ ಸೇರಿಸಲಾದ ಪ್ಯಾಚ್ ನಿಷ್ಪರಿಣಾಮಕಾರಿಯಾಗಿದೆ. ಬಳಕೆದಾರರು ತಮ್ಮ ಸಿಸ್ಟಂಗಳಲ್ಲಿ RPL ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ ಎಂದು ಪರಿಶೀಲಿಸಲು ಸಲಹೆ ನೀಡಲಾಗುತ್ತದೆ, ಇದನ್ನು sysctl -a | grep -i rpl_seg_enabled

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ