ரஸ்ட் நிலையான நூலகத்தில் பாதிப்பு

std::fs::remove_dir_all() செயல்பாட்டில் ரேஸ் நிலை காரணமாக ரஸ்ட் நிலையான நூலகத்தில் ஒரு பாதிப்பு (CVE-2022-21658) கண்டறியப்பட்டது. சலுகை பெற்ற பயன்பாட்டில் உள்ள தற்காலிக கோப்புகளை நீக்க இந்தச் செயல்பாடு பயன்படுத்தப்பட்டால், தாக்குபவர், தன்னிச்சையான கணினி கோப்புகள் மற்றும் கோப்பகங்களை நீக்குவதை அடைய முடியும்.

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

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

1.0.0 முதல் 1.58.0 வரையிலான ரஸ்டின் அனைத்து பதிப்புகளும் பாதிக்கப்பட்டுள்ளன. இந்தச் சிக்கல் தற்போது பேட்ச் வடிவத்தில் தீர்க்கப்பட்டுள்ளது (சில மணிநேரங்களில் 1.58.1 வெளியீட்டில் சரிசெய்தல் சேர்க்கப்படும்). டெபியன், RHEL, SUSE, Fedora, Ubuntu, Arch, FreeBSD ஆகிய பக்கங்களில் விநியோகங்களில் உள்ள பாதிப்பை நீக்குவதை நீங்கள் கண்காணிக்கலாம். Rust நிரல்களின் அனைத்து பயனர்களும் உயர்ந்த சலுகைகளுடன் இயங்கும் மற்றும் remove_dir_all செயல்பாட்டைப் பயன்படுத்தி Rust ஐ அவசரமாக பதிப்பு 1.58.1 க்கு புதுப்பிக்க அறிவுறுத்தப்படுகிறார்கள். வெளியிடப்பட்ட பேட்ச் அனைத்து கணினிகளிலும் சிக்கலைத் தீர்க்கவில்லை என்பது சுவாரஸ்யமானது; எடுத்துக்காட்டாக, REDOX OS மற்றும் 10.10 (Yosemite) க்கு முந்தைய macOS பதிப்புகளில், O_NOFOLLOW கொடி இல்லாததால் பாதிப்பு தடுக்கப்படவில்லை, இது பின்வருவன குறியீட்டை முடக்குகிறது. இணைப்புகள்.

ஆதாரம்: opennet.ru

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