லினக்ஸ் கர்னல் அளவில் குறியீட்டை செயல்படுத்த அனுமதிக்கும் eBPF துணை அமைப்பில் உள்ள பாதிப்புகள்

eBPF துணை அமைப்பில் இரண்டு புதிய பாதிப்புகள் கண்டறியப்பட்டுள்ளன, இது JIT உடன் ஒரு சிறப்பு மெய்நிகர் கணினியில் Linux கர்னலில் ஹேண்ட்லர்களை இயக்க அனுமதிக்கிறது. இரண்டு பாதிப்புகளும் தனிமைப்படுத்தப்பட்ட eBPF மெய்நிகர் இயந்திரத்திற்கு வெளியே கர்னல் உரிமைகளுடன் உங்கள் குறியீட்டைச் செயல்படுத்துவதை சாத்தியமாக்குகிறது. Pwn2Own போட்டியை நடத்தும் ஜீரோ டே முன்முயற்சி குழுவால் சிக்கல்கள் பற்றிய தகவல்கள் வெளியிடப்பட்டன, இந்த ஆண்டு Ubuntu Linux மீதான மூன்று தாக்குதல்கள் முன்னர் அறியப்படாத பாதிப்புகளைப் பயன்படுத்தியதாக நிரூபிக்கப்பட்டது (eBPF இல் உள்ள பாதிப்புகள் இந்த தாக்குதல்களுடன் தொடர்புடையதா என்பது தெரிவிக்கப்படவில்லை) .

  • CVE-2021-3490 - eBPF ALU32 இல் பிட்வைஸ் AND, OR, மற்றும் XOR செயல்பாடுகளைச் செய்யும்போது 32-பிட் எல்லைக்கு வெளியே சரிபார்ப்பு இல்லாததால் பாதிப்பு ஏற்படுகிறது. ஒதுக்கப்பட்ட இடையகத்தின் எல்லைக்கு வெளியே தரவைப் படிக்கவும் எழுதவும் தாக்குபவர் இந்தப் பிழையைப் பயன்படுத்திக் கொள்ளலாம். XOR செயல்பாடுகளில் சிக்கல் கர்னல் பதிப்பு 5.7-rc1 இலிருந்து தொடங்குகிறது, மேலும் AND மற்றும் OR - 5.10-rc1 இலிருந்து தொடங்குகிறது.
  • CVE-2021-3489 - ரிங் பஃப்பரைச் செயல்படுத்துவதில் ஏற்பட்ட பிழையால் பாதிப்பு ஏற்படுகிறது மற்றும் ஒதுக்கப்பட்ட நினைவகப் பகுதியின் அளவு உண்மையான அளவை விட குறைவாக இருக்கக்கூடிய சாத்தியத்தை bpf_ringbuf_reserve செயல்பாடு சரிபார்க்கவில்லை என்பதே இதற்குக் காரணம். ரிங்பஃப். 5.8-rc1 வெளியீட்டிலிருந்து சிக்கல் தோன்றுகிறது.

விநியோகங்களில் உள்ள பேட்ச் பாதிப்புகளின் நிலையை இந்தப் பக்கங்களில் கண்காணிக்கலாம்: உபுண்டு, டெபியன், RHEL, Fedora, SUSE, Arch). திருத்தங்கள் இணைப்புகளாகவும் கிடைக்கின்றன (CVE-2021-3489, CVE-2021-3490). சிக்கலைப் பயன்படுத்திக் கொள்ள முடியுமா என்பது eBPF சிஸ்டம் அழைப்பு பயனருக்கு அணுகக்கூடியதா என்பதைப் பொறுத்தது. எடுத்துக்காட்டாக, RHEL இல் உள்ள இயல்புநிலை உள்ளமைவில், பாதிப்பைப் பயன்படுத்த பயனர் CAP_SYS_ADMIN உரிமைகளைக் கொண்டிருக்க வேண்டும்.

தனித்தனியாக, லினக்ஸ் கர்னலில் மற்றொரு பாதிப்பை நாம் கவனிக்கலாம் - CVE-2021-32606, இது ஒரு உள்ளூர் பயனர் தங்கள் சலுகைகளை ரூட் நிலைக்கு உயர்த்த அனுமதிக்கிறது. Linux kernel 5.11 இலிருந்து சிக்கல் தெளிவாகத் தெரிகிறது மற்றும் CAN ISOTP நெறிமுறையை செயல்படுத்துவதில் உள்ள ரேஸ் நிபந்தனையால் ஏற்படுகிறது, இது isotp_setsockopt() செயல்பாட்டில் சரியான பூட்டுகளை அமைக்காததால் சாக்கெட் பிணைப்பு அளவுருக்களை மாற்றுவதை சாத்தியமாக்குகிறது. CAN_ISOTP_SF_BROADCAST கொடியை செயலாக்கும் போது.

ISOTP சாக்கெட் மூடப்பட்ட பிறகு, பெறுநரின் சாக்கெட்டுக்கான பிணைப்பு செயல்பாட்டில் இருக்கும், இது அவற்றுடன் தொடர்புடைய நினைவகம் விடுவிக்கப்பட்ட பிறகும் சாக்கெட்டுடன் தொடர்புடைய கட்டமைப்புகளை தொடர்ந்து பயன்படுத்த முடியும் (isotp_rcv()க்கான அழைப்பின் காரணமாக பயன்படுத்த-பின்-இலவசம். ஏற்கனவே விடுவிக்கப்பட்ட isotp_sock கட்டமைப்பை அணுகுகிறது). தரவு கையாளுதல் மூலம், நீங்கள் sk_error_report() செயல்பாட்டிற்கு சுட்டியை மேலெழுதலாம் மற்றும் உங்கள் குறியீட்டை கர்னல் மட்டத்தில் இயக்கலாம்.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்