Linux Netfilter ಕರ್ನಲ್ ಉಪವ್ಯವಸ್ಥೆಯಲ್ಲಿನ ದುರ್ಬಲತೆ

ಒಂದು ದುರ್ಬಲತೆಯನ್ನು (CVE-2021-22555) Netfilter ನಲ್ಲಿ ಗುರುತಿಸಲಾಗಿದೆ, ಇದು ನೆಟ್‌ವರ್ಕ್ ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಲು ಮತ್ತು ಮಾರ್ಪಡಿಸಲು ಬಳಸುವ Linux ಕರ್ನಲ್‌ನ ಉಪವ್ಯವಸ್ಥೆಯಾಗಿದೆ, ಇದು ಸ್ಥಳೀಯ ಬಳಕೆದಾರರಿಗೆ ಪ್ರತ್ಯೇಕವಾದ ಕಂಟೇನರ್‌ನಲ್ಲಿರುವಾಗಲೂ ಸೇರಿದಂತೆ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ರೂಟ್ ಸವಲತ್ತುಗಳನ್ನು ಪಡೆಯಲು ಅನುಮತಿಸುತ್ತದೆ. KASLR, SMAP ಮತ್ತು SMEP ಸಂರಕ್ಷಣಾ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಬೈಪಾಸ್ ಮಾಡುವ ಶೋಷಣೆಯ ಕೆಲಸದ ಮೂಲಮಾದರಿಯನ್ನು ಪರೀಕ್ಷೆಗಾಗಿ ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ. ದುರ್ಬಲತೆಯನ್ನು ಕಂಡುಹಿಡಿದ ಸಂಶೋಧಕರು kCTF ಕ್ಲಸ್ಟರ್‌ನಲ್ಲಿ ಕುಬರ್ನೆಟ್ಸ್ ಕಂಟೈನರ್‌ಗಳ ಪ್ರತ್ಯೇಕತೆಯನ್ನು ಬೈಪಾಸ್ ಮಾಡುವ ವಿಧಾನವನ್ನು ಗುರುತಿಸಿದ್ದಕ್ಕಾಗಿ Google ನಿಂದ $20 ಬಹುಮಾನವನ್ನು ಪಡೆದರು.

ಸಮಸ್ಯೆಯು 2.6.19 ವರ್ಷಗಳ ಹಿಂದೆ ಬಿಡುಗಡೆಯಾದ ಕರ್ನಲ್ 15 ರಿಂದಲೂ ಇದೆ ಮತ್ತು IPT_SO_SET_REPLACE ಮತ್ತು IP6T_SO_SET_REPLACE ಹ್ಯಾಂಡ್ಲರ್‌ಗಳಲ್ಲಿನ ದೋಷದಿಂದ ಉಂಟಾಗುತ್ತದೆ, ಇದು ವಿಶೇಷವಾಗಿ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲಾದ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳನ್ನು ಕಾಂಪಾಟ್ ಮೋಡ್‌ನಲ್ಲಿ ಸೆಟ್‌ಸಾಕ್‌ಆಪ್ಟ್ ಕರೆ ಮೂಲಕ ಕಳುಹಿಸುವಾಗ ಬಫರ್ ಓವರ್‌ಫ್ಲೋಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಸಾಮಾನ್ಯ ಸಂದರ್ಭಗಳಲ್ಲಿ, ರೂಟ್ ಬಳಕೆದಾರ ಮಾತ್ರ compat_setsockopt() ಗೆ ಕರೆ ಮಾಡಬಹುದು, ಆದರೆ ಆಕ್ರಮಣವನ್ನು ನಿರ್ವಹಿಸಲು ಅಗತ್ಯವಿರುವ ಸವಲತ್ತುಗಳನ್ನು ಬಳಕೆದಾರರ ನೇಮ್‌ಸ್ಪೇಸ್‌ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ಸವಲತ್ತು ಇಲ್ಲದ ಬಳಕೆದಾರರಿಂದ ಪಡೆಯಬಹುದು.

ಬಳಕೆದಾರರು ಪ್ರತ್ಯೇಕ ರೂಟ್ ಬಳಕೆದಾರರೊಂದಿಗೆ ಕಂಟೇನರ್ ಅನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ಅಲ್ಲಿಂದ ದುರ್ಬಲತೆಯನ್ನು ಬಳಸಿಕೊಳ್ಳಬಹುದು. ಉದಾಹರಣೆಗೆ, ಉಬುಂಟು ಮತ್ತು ಫೆಡೋರಾದಲ್ಲಿ "ಬಳಕೆದಾರ ನೇಮ್‌ಸ್ಪೇಸ್" ಅನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ, ಆದರೆ ಡೆಬಿಯನ್ ಮತ್ತು RHEL ನಲ್ಲಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ. ದುರ್ಬಲತೆಯನ್ನು ಸರಿಪಡಿಸುವ ಪ್ಯಾಚ್ ಅನ್ನು ಏಪ್ರಿಲ್ 13 ರಂದು ಲಿನಕ್ಸ್ ಕರ್ನಲ್‌ಗೆ ಅಳವಡಿಸಲಾಯಿತು. ಡೆಬಿಯನ್, ಆರ್ಚ್ ಲಿನಕ್ಸ್ ಮತ್ತು ಫೆಡೋರಾ ಯೋಜನೆಗಳಿಂದ ಪ್ಯಾಕೇಜ್ ನವೀಕರಣಗಳನ್ನು ಈಗಾಗಲೇ ರಚಿಸಲಾಗಿದೆ. ಉಬುಂಟು, RHEL ಮತ್ತು SUSE ನಲ್ಲಿ, ನವೀಕರಣಗಳು ತಯಾರಿಯಲ್ಲಿವೆ.

32-ಬಿಟ್‌ನಿಂದ 64-ಬಿಟ್ ಪ್ರಾತಿನಿಧ್ಯಕ್ಕೆ ಪರಿವರ್ತಿಸಿದ ನಂತರ ಕರ್ನಲ್ ರಚನೆಗಳನ್ನು ಉಳಿಸುವಾಗ ಮೆಮೊರಿ ಗಾತ್ರದ ತಪ್ಪಾದ ಲೆಕ್ಕಾಚಾರದ ಕಾರಣ xt_compat_target_from_user() ಕಾರ್ಯದಲ್ಲಿ ಸಮಸ್ಯೆ ಉಂಟಾಗುತ್ತದೆ. ದೋಷವು ನಾಲ್ಕು ಶೂನ್ಯ ಬೈಟ್‌ಗಳನ್ನು ಆಫ್‌ಸೆಟ್ 0x4C ನಿಂದ ಸೀಮಿತಗೊಳಿಸಲಾದ ಬಫರ್‌ನ ಆಚೆಗೆ ಯಾವುದೇ ಸ್ಥಾನಕ್ಕೆ ಬರೆಯಲು ಅನುಮತಿಸುತ್ತದೆ. msg_msg ರಚನೆಯಲ್ಲಿ m_list->ಮುಂದಿನ ಪಾಯಿಂಟರ್ ಅನ್ನು ತೆರವುಗೊಳಿಸುವ ಮೂಲಕ, ಮೆಮೊರಿಯನ್ನು ಮುಕ್ತಗೊಳಿಸಿದ ನಂತರ (ಬಳಕೆಯ ನಂತರ-ಉಚಿತ) ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಷರತ್ತುಗಳನ್ನು ರಚಿಸುವ ಮೂಲಕ ರೂಟ್ ಹಕ್ಕುಗಳನ್ನು ಪಡೆಯಲು ಅನುಮತಿಸುವ ಒಂದು ಶೋಷಣೆಯನ್ನು ರಚಿಸಲು ಈ ವೈಶಿಷ್ಟ್ಯವು ಸಾಕಾಗುತ್ತದೆ. ನಂತರ msgsnd() ಸಿಸ್ಟಮ್ ಕರೆ ಕುಶಲತೆಯ ಮೂಲಕ ವಿಳಾಸಗಳು ಮತ್ತು ಇತರ ರಚನೆಗಳ ಬದಲಾವಣೆಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಲು ಬಳಸಲಾಯಿತು.

ಮೂಲ: opennet.ru

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