ಕಚ್ಚಾ ಬ್ಲಾಕ್ ಸಾಧನ ಡೇಟಾವನ್ನು ಓದಲು ಅನುಮತಿಸುವ XFS ನಲ್ಲಿನ ದುರ್ಬಲತೆ

ಒಂದು ದುರ್ಬಲತೆಯನ್ನು (CVE-2021-4155) XFS ಫೈಲ್ ಸಿಸ್ಟಮ್ ಕೋಡ್‌ನಲ್ಲಿ ಗುರುತಿಸಲಾಗಿದೆ, ಇದು ಸ್ಥಳೀಯ ಅನಧಿಕೃತ ಬಳಕೆದಾರರಿಗೆ ಬ್ಲಾಕ್ ಸಾಧನದಿಂದ ನೇರವಾಗಿ ಬಳಕೆಯಾಗದ ಬ್ಲಾಕ್ ಡೇಟಾವನ್ನು ಓದಲು ಅನುಮತಿಸುತ್ತದೆ. XFS ಚಾಲಕವನ್ನು ಹೊಂದಿರುವ 5.16 ಕ್ಕಿಂತ ಹಳೆಯದಾದ Linux ಕರ್ನಲ್‌ನ ಎಲ್ಲಾ ಪ್ರಮುಖ ಆವೃತ್ತಿಗಳು ಈ ಸಮಸ್ಯೆಯಿಂದ ಪ್ರಭಾವಿತವಾಗಿವೆ. ಫಿಕ್ಸ್ ಅನ್ನು ಆವೃತ್ತಿ 5.16 ರಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ, ಹಾಗೆಯೇ ಕರ್ನಲ್ ನವೀಕರಣಗಳು 5.15.14, 5.10.91, 5.4.171, 4.19.225, ಇತ್ಯಾದಿ. ವಿತರಣೆಗಳಲ್ಲಿನ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ನವೀಕರಣಗಳ ಸ್ಥಿತಿಯನ್ನು ಈ ಪುಟಗಳಲ್ಲಿ ಟ್ರ್ಯಾಕ್ ಮಾಡಬಹುದು: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.

ದುರ್ಬಲತೆಯು ಎರಡು XFS-ನಿರ್ದಿಷ್ಟ ioctl (XFS_IOC_ALLOCSP) ಮತ್ತು ioctl (XFS_IOC_FREESP) ನ ತಪ್ಪಾದ ನಡವಳಿಕೆಯಿಂದ ಉಂಟಾಗುತ್ತದೆ, ಇದು ಕರ್ನಲ್-ವೈಡ್ ಫಾಲೋಕೇಟ್() ಸಿಸ್ಟಮ್ ಕರೆಯ ಕ್ರಿಯಾತ್ಮಕ ಅನಲಾಗ್ ಆಗಿದೆ. ಬ್ಲಾಕ್-ಅಲೈನ್ ಮಾಡದ ಫೈಲ್ ಗಾತ್ರವನ್ನು ಹೆಚ್ಚಿಸುವಾಗ, ioctls XFS_IOC_ALLOCSP/XFS_IOC_FREESP ಮುಂದಿನ ಬ್ಲಾಕ್ ಬೌಂಡರಿ ತನಕ ಟೈಲ್ ಬೈಟ್‌ಗಳನ್ನು ಸೊನ್ನೆಗೆ ಮರುಹೊಂದಿಸುವುದಿಲ್ಲ. ಹೀಗಾಗಿ, 4096 ಬೈಟ್‌ಗಳ ಪ್ರಮಾಣಿತ ಬ್ಲಾಕ್ ಗಾತ್ರದೊಂದಿಗೆ XFS ನಲ್ಲಿ, ಆಕ್ರಮಣಕಾರರು ಪ್ರತಿ ಬ್ಲಾಕ್‌ನಿಂದ ಹಿಂದಿನ ಲಿಖಿತ ಡೇಟಾವನ್ನು 4095 ಬೈಟ್‌ಗಳವರೆಗೆ ಓದಬಹುದು. ಈ ಪ್ರದೇಶಗಳು ಅಳಿಸಲಾದ ಫೈಲ್‌ಗಳು, ಡಿಫ್ರಾಗ್ಮೆಂಟೆಡ್ ಫೈಲ್‌ಗಳು ಮತ್ತು ಡಿಡ್ಪ್ಲಿಕೇಟೆಡ್ ಬ್ಲಾಕ್‌ಗಳನ್ನು ಹೊಂದಿರುವ ಫೈಲ್‌ಗಳಿಂದ ಡೇಟಾವನ್ನು ಒಳಗೊಂಡಿರಬಹುದು.

ಸರಳವಾದ ಶೋಷಣೆಯ ಮೂಲಮಾದರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಸಮಸ್ಯೆಗಾಗಿ ನಿಮ್ಮ ಸಿಸ್ಟಮ್ ಅನ್ನು ನೀವು ಪರೀಕ್ಷಿಸಬಹುದು. ಆದೇಶಗಳ ಪ್ರಸ್ತಾವಿತ ಅನುಕ್ರಮವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ನಂತರ, ಷೇಕ್ಸ್ಪಿಯರ್ನ ಪಠ್ಯವನ್ನು ಓದಲು ಸಾಧ್ಯವಾದರೆ, ನಂತರ FS ಚಾಲಕವು ದುರ್ಬಲವಾಗಿರುತ್ತದೆ. ಆರಂಭದಲ್ಲಿ XFS ವಿಭಾಗವನ್ನು ಪ್ರದರ್ಶನಕ್ಕಾಗಿ ಆರೋಹಿಸಲು ರೂಟ್ ಸವಲತ್ತುಗಳ ಅಗತ್ಯವಿದೆ.

ioctl(XFS_IOC_ALLOCSP) ಮತ್ತು ioctl(XFS_IOC_FREESP) ಕಾರ್ಯಚಟುವಟಿಕೆಯಲ್ಲಿ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಫಾಲೋಕೇಟ್() ನಂತೆ ಪ್ರಾಯೋಗಿಕವಾಗಿ ಒಂದೇ ಆಗಿರುವುದರಿಂದ ಮತ್ತು ಅವುಗಳ ಏಕೈಕ ವ್ಯತ್ಯಾಸವೆಂದರೆ ಡೇಟಾ ಸೋರಿಕೆ, ಅವುಗಳ ಉಪಸ್ಥಿತಿಯು ಹಿಂಬಾಗಿಲನ್ನು ಹೋಲುತ್ತದೆ. ಕರ್ನಲ್‌ನಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಇಂಟರ್‌ಫೇಸ್‌ಗಳನ್ನು ಬದಲಾಯಿಸದಿರುವ ಸಾಮಾನ್ಯ ನೀತಿಯ ಹೊರತಾಗಿಯೂ, ಲಿನಸ್‌ನ ಸಲಹೆಯ ಮೇರೆಗೆ, ಮುಂದಿನ ಆವೃತ್ತಿಯಲ್ಲಿ ಈ ioctls ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ತೆಗೆದುಹಾಕಲು ನಿರ್ಧರಿಸಲಾಯಿತು.

ಮೂಲ: opennet.ru

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