io_uring இல் உள்ள பாதிப்பு, அனுமதி இல்லாத பயனரை கொள்கலன்களில் கூட ரூட் ஆக அனுமதித்தது

சமீபத்தில் பாதிப்பு தகவல் வெளிப்படுத்தப்பட்டது (CVE-2022-29582) io_uring ஒத்திசைவற்ற I/O இடைமுகத்தை செயல்படுத்துவதில், பதிப்பு 5.1 முதல் லினக்ஸ் கர்னலில் சேர்க்கப்பட்டுள்ளது, இது ஒரு கன்டெய்னர் சுரண்டலைச் செயல்படுத்தும் போது கூட, ஒரு சலுகையற்ற பயனரை கணினியில் ரூட் ஆக அனுமதிக்கிறது.

அதைக் குறிப்பிடுவது மதிப்பு 3 மாதங்களுக்கு முன்புதான் பாதிப்பு பதிவாகியிருந்தது என்றார் (தோராயமாக இந்த ஆண்டு மே தொடக்கத்தில்), ஆனால் முழு தகவல் மற்றும் வெளிப்பாடு சமீபத்தில் வெளியிடப்பட்டது.

பாதிப்பு குறித்து, இவ்வாறு குறிப்பிடப்பட்டுள்ளது ஏற்கனவே விடுவிக்கப்பட்ட நினைவக தொகுதியை அணுகும் போது ஏற்படும், 5.10 கிளையில் தொடங்கி லினக்ஸ் கர்னல்களில் வெளிப்படுகிறது.

பாதிப்பு பற்றி CVE-2022-29582

இந்த பாதிப்பு விடுவிக்கப்பட்ட நினைவகத்தை அணுக அனுமதிக்கிறது io_flush_timeouts() செயல்பாட்டில் காலக்கெடுவைக் கையாளும் போது ரேஸ் நிபந்தனையின் விளைவாக, இதுe காலாவதி உள்ளீட்டை நீக்குகிறது பட்டியலிலிருந்து அதை ரத்துசெய்து, அந்த நேரத்தில் காலக்கெடுவை உருவாக்குவதையும் நீக்குவதையும் சரிபார்க்காமல்.

io_uring இன் புதுப்பிக்கப்பட்ட பொதுவான விளக்கம் ஏற்கனவே மற்றவர்களால் வழங்கப்பட்டுள்ளது. அவர்கள் அதை நம்மை விட ஆயிரம் மடங்கு சிறப்பாக விளக்குகிறார்கள், எனவே நாங்கள் துணை அமைப்பை இன்னும் விரிவாகப் பார்ப்போம் (இந்த கிராப்ல் பாதுகாப்பு கட்டுரை மற்றும் இந்த பிளாட் பாதுகாப்பு கட்டுரையைப் பார்க்கவும்).

அதைவிட முக்கியமானது என்ன, ஆப்கோட் புலம் எந்த வகையான செயல்பாட்டைச் செய்ய வேண்டும் என்பதை தீர்மானிக்கிறது. தேவைப்படும் ஒவ்வொரு "opcode" க்கும், fd புலம் கோரிய I/O ஐச் செய்ய வேண்டிய கோப்பு விளக்கத்தைக் குறிப்பிடுகிறது. ஏறக்குறைய அனைத்து சாதாரண I/O சிஸ்டம் அழைப்புகளும் (படிக்க, அனுப்புதல் போன்றவை) சமமான ஒத்திசைவற்ற ஆப்கோடைக் கொண்டுள்ளன. ஒவ்வொரு துறையும் செயல்பாட்டைப் பொறுத்து வெவ்வேறு பாத்திரங்களை எடுக்கலாம்.

SQ இலிருந்து மீட்டெடுக்கப்பட்டதும், ஒரு SQE ஆனது struct io_kiocb (கர்னல் உள்ளீடு/வெளியீட்டு அழைப்பு) மூலம் விவரிக்கப்பட்ட உள் பிரதிநிதித்துவமாக மாற்றப்படுகிறது. இந்த பொருள்கள் பொதுவாக கோரிக்கைகள் என்று அழைக்கப்படுகின்றன.

struct io_kiocb ஆனது SQE "தொடக்கத் தயார்" க்கு சமமானதாகப் பயன்படுத்தப்படுகிறது, அதன் அடிப்படையில் எந்த கோப்பு விளக்கமும் கோப்பு*களை கட்டமைக்க தீர்க்கப்படுகிறது, பயனர் நற்சான்றிதழ்கள் இணைக்கப்பட்டுள்ளன, ஆளுமை (இதில் கோர்கள் இயங்கும்) போன்றவை. .

கோரப்பட்ட செயல்பாடு முடிந்ததும், அது நிறைவு வரிசையில் எழுதப்படும் (CQ) SQE க்கு ஒத்த ஒரு உள்ளீடு. அத்தகைய நுழைவு நிறைவு வரிசை நுழைவு (CQE) என்று அழைக்கப்படுகிறது மற்றும் பிழைக் குறியீடு மற்றும் முடிவு மதிப்பு போன்ற புலங்களைக் கொண்டுள்ளது. அனுப்பப்பட்ட SQEகள் செயலாக்கத்தை முடித்துவிட்டதா மற்றும் அவற்றின் முடிவு என்ன என்பதைத் தீர்மானிக்க புதிய உள்ளீடுகளுக்கு பயனர் விண்வெளி பயன்பாடு CQ ஐ வாக்களிக்க முடியும்.

என்று குறிப்பிடப்பட்டுள்ளது ஒரு பொருளை மாற்றுவது எளிதான சில காட்சிகள் உள்ளன முன்னேற்றம் மீது. ஆனால் இரண்டு வரம்புகள் உள்ளன:

  • ரேஸ் சாளரத்தில் LT' ஒதுக்கப்பட்டு துவக்கப்பட வேண்டும். அதாவது, எல்டி வெளியிடப்பட்ட பிறகு, ஆனால் எல்டியில் ஒரு புள்ளியை அடைவதற்கு முன்பு, அது அணுகப்படாது.
  • LT' என்பது மற்றொரு struct io_kiocb பொருளாக மட்டுமே இருக்க முடியும். குவியல் தனிமைப்படுத்தல் காரணமாக, குவியலில் உள்ள பொருள்கள் அவற்றின் வகைக்கு ஏற்ப பிரிக்கப்படுகின்றன, பந்தய சாளரத்தில் அவற்றை வேறு வகையான பொருளாக மாற்றுவது மிகவும் கடினம்.

ஆராய்ச்சியாளர்கள் ஒரு செயல்பாட்டு சுரண்டலைத் தயாரித்துள்ளனர் அதன் செயல்பாட்டிற்கு பயனர் அடையாளங்காட்டி பெயர்வெளிகளை (பயனர் பெயர்வெளிகள்) சேர்க்க வேண்டிய அவசியமில்லை, மேலும் ஒரு தனிமைப்படுத்தப்பட்ட கன்டெய்னரில் சுரண்டலைத் தொடங்கும் போது, ​​ஹோஸ்டுக்கு ரூட் அணுகலை வழங்க முடியும்.

எங்கள் சுரண்டல் கர்னல் பதிப்பு 5.10.90 ஐ குறிவைக்கிறது, அந்த நேரத்தில் Google தொலைநிலையில் இயங்கிய பதிப்பு. சேவையகத்தின் குறிப்பிட்ட விவரக்குறிப்புகளுக்கு (4 Skylake Xeon கோர்கள் @ 2.80Ghz, 16GiB RAM) எங்கள் சுரண்டலை சரிசெய்ய வேண்டியிருந்தது, ஆனால் சில ட்வீக்கிங் மூலம், பாதிக்கப்படக்கூடிய கர்னலில் இயங்கும் எந்த இயந்திரமும் பயன்படுத்தக்கூடியதாக இருக்க வேண்டும்.

சுரண்டல் nsjail சூழலில் வேலை செய்கிறது Chromium OS ஐ அடிப்படையாகக் கொண்ட Google COS (கன்டெய்னர் ஆப்டிமைஸ்டு OS) விநியோகத்தில் தனிமைப்படுத்தப்பட்டு, கம்ப்யூட் என்ஜின் மெய்நிகர் கணினிகளில் Google Cloud Platform இல் பயன்படுத்தப்படுகிறது. சுரண்டல் கர்னல் கிளைகளுடன் 5.10 முதல் 5.12 வரை வேலை செய்ய வடிவமைக்கப்பட்டுள்ளது. கடைசியாக, அதைக் குறிப்பிடுவது மதிப்பு ஏப்ரல் மாதத்தில் 5.10.111, 5.15.34 மற்றும் 5.17.3 புதுப்பிப்புகளில் சிக்கல் சரி செய்யப்பட்டது.

இறுதியாக, பாதிப்பைப் பற்றி மேலும் அறிய நீங்கள் ஆர்வமாக இருந்தால், நீங்கள் வெளியிடப்பட்ட வெளியீட்டைப் பார்க்கவும் பின்வரும் இணைப்பில்.


உங்கள் கருத்தை தெரிவிக்கவும்

உங்கள் மின்னஞ்சல் முகவரி வெளியிடப்பட்ட முடியாது. தேவையான புலங்கள் குறிக்கப்பட்டிருக்கும் *

*

*

  1. தரவுகளுக்குப் பொறுப்பு: AB இன்டர்நெட் நெட்வொர்க்ஸ் 2008 SL
  2. தரவின் நோக்கம்: கட்டுப்பாட்டு ஸ்பேம், கருத்து மேலாண்மை.
  3. சட்டபூர்வமாக்கல்: உங்கள் ஒப்புதல்
  4. தரவின் தொடர்பு: சட்டபூர்வமான கடமையால் தவிர மூன்றாம் தரப்பினருக்கு தரவு தெரிவிக்கப்படாது.
  5. தரவு சேமிப்பு: ஆக்சென்டஸ் நெட்வொர்க்குகள் (EU) வழங்கிய தரவுத்தளம்
  6. உரிமைகள்: எந்த நேரத்திலும் உங்கள் தகவல்களை நீங்கள் கட்டுப்படுத்தலாம், மீட்டெடுக்கலாம் மற்றும் நீக்கலாம்.