லினக்ஸ் கெர்னலில் இரண்டு பாதுகாப்புக் குறைபாடுகள் கண்டறியப்பட்டுள்ளன. இந்தப் பாதுகாப்புக் குறைபாடுகள், சில நாட்களுக்கு முன்பு வெளிப்படுத்தப்பட்ட 'காப்பி ஃபெயில்' (Copy Fail) பாதுகாப்புக் குறைபாட்டைப் போலவே இருந்தாலும், அவை xfrm-ESP மற்றும் RxRPC ஆகிய வெவ்வேறு துணை அமைப்புகளைப் பாதிக்கின்றன. இந்தப் பாதுகாப்புக் குறைபாடுகளின் தொடருக்கு 'டர்ட்டி ஃபிராக்' (Dirty Frag) (காப்பி ஃபெயில் 2 என்றும் குறிப்பிடப்படுகிறது) என்று குறியீட்டுப் பெயர் சூட்டப்பட்டுள்ளது. இந்தப் பாதுகாப்புக் குறைபாடுகள், பக்க கேச்சில் (page cache) உள்ள செயல்முறைத் தரவுகளை மேலெழுதி, சிறப்புரிமையற்ற ஒரு பயனர் ரூட் சிறப்புரிமைகளைப் பெற அனுமதிக்கின்றன. தற்போதுள்ள அனைத்து லினக்ஸ் விநியோகங்களிலும் செயல்படும் ஒரு சுரண்டல் முறை (exploit) உள்ளது. திருத்தங்கள் (patches) வெளியிடப்படுவதற்கு முன்பே இந்தப் பாதுகாப்புக் குறைபாடு வெளிப்படுத்தப்பட்டது, ஆனால் ஒரு மாற்று வழி உள்ளது.
டர்ட்டி ஃபிராக் இரண்டு வெவ்வேறு பாதிப்புகளை உள்ளடக்கியுள்ளது: முதலாவது, ESP (என்கேப்சுலேட்டிங் செக்யூரிட்டி பேலோட்) நெறிமுறையைப் பயன்படுத்தி IPsec குறியாக்கச் செயல்பாடுகளை விரைவுபடுத்தப் பயன்படும் xfrm-ESP தொகுதியிலும், இரண்டாவது, AF_RXRPC சாக்கெட் குடும்பத்தையும் அதே பெயரிலான RPC நெறிமுறையையும் UDP வழியாகச் செயல்படுத்தும் RxRPC டிரைவரிலும் உள்ளது. ஒவ்வொரு பாதிப்பும், தனித்தனியாகப் பார்க்கும்போது, ரூட் சிறப்புரிமைகளை அனுமதிக்கிறது. xfrm-ESP பாதிப்பு ஜனவரி 2017 முதலும், RxRPC பாதிப்பு ஜூன் 2023 முதலும் லினக்ஸ் கெர்னலில் இருந்து வருகின்றன. இந்த இரண்டு சிக்கல்களும், பக்க கேஷில் நேரடியாக எழுத அனுமதிக்கும் மேம்படுத்தல்களால் ஏற்படுகின்றன.
xfrm-ESP பாதிப்பைப் பயன்படுத்திக்கொள்ள, பயனருக்கு நேம்ஸ்பேஸ்களை உருவாக்கும் அனுமதி இருக்க வேண்டும். மேலும், RxRPC பாதிப்பைப் பயன்படுத்திக்கொள்ள, rxrpc.ko கர்னல் மாட்யூல் ஏற்றப்பட்டிருக்க வேண்டும். உதாரணமாக, உபுண்டுவில், AppArmor விதிகள் சிறப்புரிமையற்ற பயனர்கள் நேம்ஸ்பேஸ்களை உருவாக்குவதைத் தடுக்கின்றன, ஆனால் rxrpc.ko மாட்யூல் இயல்பாகவே ஏற்றப்பட்டிருக்கும். சில டிஸ்ட்ரிபியூஷன்களில் rxrpc.ko மாட்யூல் இல்லை, ஆனால் அவை நேம்ஸ்பேஸ் உருவாக்கத்தைத் தடுப்பதில்லை. இந்தப் பிரச்சினையைக் கண்டுபிடித்த ஆராய்ச்சியாளர், இரண்டு பாதிப்புகள் வழியாகவும் கணினியைத் தாக்கக்கூடிய ஒரு ஒருங்கிணைந்த சுரண்டல் முறையை உருவாக்கினார். இது அனைத்து முக்கிய டிஸ்ட்ரிபியூஷன்களிலும் இந்தப் பிரச்சினையைப் பயன்படுத்திக்கொள்ள வழிவகுத்தது. இந்த எக்ஸ்ப்ளாய்ட், கர்னல் 6.17.0-23 கொண்ட உபுண்டு 24.04.4, கர்னல் 6.12.0-124.49.1 கொண்ட RHEL 10.1, கர்னல் 7.0.2-1 கொண்ட ஓப்பன்சூஸ் டம்பிள்வீட், கர்னல் 6.12.0-224 கொண்ட சென்ட்ஓஎஸ் ஸ்ட்ரீம் 10, கர்னல் 6.12.0-124.52.3 கொண்ட அல்மாலினக்ஸ் 10, மற்றும் கர்னல் 6.19.14-300 கொண்ட ஃபெடோரா 44 ஆகியவற்றில் செயல்படுவது உறுதி செய்யப்பட்டுள்ளது.
நகல் தோல்வி பாதிப்பைப் போலவே, xfrm-ESP மற்றும் RxRPC-இல் உள்ள சிக்கல்களும், splice() செயல்பாட்டைப் பயன்படுத்தி செய்யப்படும் இடத்திலேயே தரவு மறைகுறியாக்கத்தால் ஏற்படுகின்றன. இந்தச் செயல்பாடு, பக்கத் தற்காலிக நினைவகத்தில் (page cache) உள்ள கூறுகளுக்கான குறிப்புகளை அனுப்புவதன் மூலம், தரவை நகலெடுக்காமல் கோப்பு விவரிப்பான்களுக்கும் (file descriptors) பைப்ஸ்களுக்கும் (pipes) இடையில் மாற்றுகிறது. பக்கத் தற்காலிக நினைவகத்தில் உள்ள கூறுகளுக்கான நேரடிக் குறிப்புகளின் பயன்பாட்டைக் கணக்கில் கொள்ள முறையான சோதனைகள் இல்லாமல் எழுதுதல் ஈடுசெய்வுகள் (Write offsets) கணக்கிடப்பட்டன. இது, சிறப்பாக வடிவமைக்கப்பட்ட கோரிக்கைகளை ஒரு குறிப்பிட்ட ஈடுசெய்வில் 4 பைட்டுகளை மேலெழுதவும், பக்கத் தற்காலிக நினைவகத்தில் உள்ள எந்தவொரு கோப்பின் உள்ளடக்கங்களையும் மாற்றியமைக்கவும் அனுமதிக்கிறது.
அனைத்து கோப்பு வாசிப்பு செயல்பாடுகளும் முதலில் பேஜ் கேஷில் இருந்து உள்ளடக்கங்களை மீட்டெடுக்கின்றன. பேஜ் கேஷில் உள்ள தரவு மாற்றப்பட்டால், கோப்பு வாசிப்பு செயல்பாடுகள் டிரைவில் சேமிக்கப்பட்ட உண்மையான தகவலுக்குப் பதிலாக, மாற்றப்பட்ட தரவையே வழங்கும். இந்த பாதிப்பைப் பயன்படுத்திக் கொள்வது என்பது, ஒரு இயங்கு கோப்பின் பேஜ் கேஷை suid ரூட் ஃபிளாக் மூலம் மாற்றுவதாகும். உதாரணமாக, ரூட் சிறப்புரிமைகளைப் பெற, ஒருவர் /usr/bin/su என்ற இயங்கு கோப்பைப் படித்து அதை பேஜ் கேஷில் வைக்கலாம், பின்னர் பேஜ் கேஷில் ஏற்றப்பட்ட இந்தக் கோப்பின் உள்ளடக்கங்களில் தனது சொந்தக் குறியீட்டை மாற்றியமைக்கலாம். அதைத் தொடர்ந்து "su" பயன்பாட்டை இயக்கும்போது, டிரைவில் உள்ள அசல் இயங்கு கோப்புக்கு பதிலாக, பேஜ் கேஷில் இருந்து மாற்றியமைக்கப்பட்ட நகல் நினைவகத்தில் ஏற்றப்படும்.
பாதுகாப்புக் குறைபாடு பற்றிய அறிவிப்பும், அதற்கான திருத்தங்களை ஒருங்கிணைத்து வெளியிடுவதும் மே 12 அன்று திட்டமிடப்பட்டிருந்தது. ஆனால், ஒரு தகவல் கசிவின் காரணமாக, திருத்தங்கள் வெளியிடப்படுவதற்கு முன்பே பாதுகாப்புக் குறைபாடு பற்றிய தகவல்கள் வெளியிடப்பட வேண்டியிருந்தது. ஏப்ரல் மாத இறுதியில், rxrpc, ipsec, மற்றும் xfrm ஆகியவற்றுக்கான திருத்தங்கள், அவை அந்தப் பாதுகாப்புக் குறைபாட்டுடன் தொடர்புடையவை என்பதைக் குறிப்பிடாமல் netdev பொது அஞ்சல் பட்டியலில் வெளியிடப்பட்டன. மே 5 அன்று, IPsec துணை அமைப்பின் பராமரிப்பாளர், xfrm-esp தொகுதியில் முன்மொழியப்பட்ட ஒரு திருத்தத்துடன், netdev Git களஞ்சியத்தில் செய்யப்பட்ட ஒரு மாற்றத்தை ஏற்றுக்கொண்டார். அந்த மாற்றத்தின் விளக்கம், algif_aead தொகுதியில் 'நகலெடுப்புத் தோல்வி' (Copy Fail) பாதுகாப்புக் குறைபாட்டிற்கு வழிவகுத்த சிக்கலின் விளக்கத்தைப் போலவே பெரும்பாலும் இருந்தது. ஒரு பாதுகாப்பு ஆய்வாளர் இந்தத் திருத்தத்தில் ஆர்வம் கொண்டு, செயல்படும் ஒரு சுரண்டல் முறையை உருவாக்கி, அதை வெளியிட்டார். ஆனால், மே 12 வரை அந்தச் சிக்கல் குறித்த தகவல்களை வெளியிடுவதற்குத் தடை விதிக்கப்பட்டிருந்தது அவருக்குத் தெரியாது.
விநியோகங்களில் உள்ள லினக்ஸ் கெர்னல் மற்றும் கெர்னல் தொகுப்புகளுக்கான பிழைதிருத்தங்களுடன் கூடிய புதுப்பிப்புகள் இன்னும் வெளியிடப்படவில்லை, ஆனால் சிக்கல்களைச் சரிசெய்யும் பேட்ச்கள் (xfrm-esp மற்றும் rxrpc) கிடைக்கின்றன. CVE அடையாளங்காட்டிகள் ஒதுக்கப்படவில்லை, இது விநியோகங்களில் உள்ள தொகுப்புப் புதுப்பிப்புகளைக் கண்காணிப்பதைச் சிக்கலாக்குகிறது. ஒரு மாற்று வழியாக, நீங்கள் esp4, esp6, மற்றும் rxrpc கெர்னல் மாட்யூல்கள் ஏற்றப்படுவதைத் தடுக்கலாம்: sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"
ஆதாரம்: opennet.ru
