ĂshtĂ« publikuar versioni i serverit tĂ« postĂ«s Exim 4.94.2 me rregullimin e 21 cenueshmĂ«rive (CVE-2020-28007-CVE-2020-28026, CVE-2021-27216), tĂ« zbuluara nga kompania Qualys dhe tĂ« prezantuara me emrin e koduar 21Nails. 10 probleme mund tĂ« shfrytĂ«zohen nga distanca (pĂ«rfshirĂ« edhe pĂ«r ekzekutim kodi me tĂ« drejta root), pĂ«rmes manipulimit tĂ« komandave SMTP gjatĂ« ndĂ«rveprimit me serverin.
Nga këto probleme preken të gjitha versionet e Exim, historia e të cilave ndiqet në Git që nga viti 2004. Për 4 cenueshmëri lokale dhe 3 probleme në distancë janë përgatitur prototipe funksionale të exploit-eve. Exploit-et për cenueshmëritë lokale (CVE-2020-28007, CVE-2020-28008, CVE-2020-28015, CVE-2020-28012) lejojnë ngritjen e privilegjeve deri në përdoruesin root. Dy problemet në distancë (CVE-2020-28020, CVE-2020-28018) lejojnë ekzekutimin e kodit pa autentikim me të drejtat e përdoruesit exim (më pas mund të merret qasje root duke shfrytëzuar një nga cenueshmëritë lokale).
Cenueshmëria CVE-2020-28021 lejon ekzekutimin e menjëhershëm të kodit nga distanca me të drejta root, por kërkon qasje të autentikuar (përdoruesi duhet të krijojë një sesion të autentikuar, pas së cilës mund ta shfrytëzojë cenueshmërinë përmes manipulimit të parametrit AUTH në komandën MAIL FROM). Problemi shkaktohet nga fakti se sulmuesi mund të arrijë futjen e një vargu në header-in e skedarit spool për shkak të shkrimit të vlerës authenticated_sender pa escapim të duhur të karaktereve speciale (për shembull, duke dërguar komandën «MAIL FROM: AUTH=Raven+0AReyes»).
Gjithashtu theksohet se edhe një cenueshmëri tjetër në distancë, CVE-2020-28017, mund të shfrytëzohet për ekzekutim kodi me të drejtat e përdoruesit «exim» pa autentikim, por kërkon më shumë se 25 GB memorie. Për 13 cenueshmëritë e tjera, teorikisht mund të përgatiten gjithashtu exploit-e, por puna në këtë drejtim ende nuk është kryer.
Zhvilluesit e Exim janë njoftuar për problemet që në tetor të vitit të kaluar dhe kanë shpenzuar më shumë se 6 muaj për zhvillimin e korrigjimeve. Të gjithë administratorëve u rekomandohet të përditësojnë urgjentisht Exim në serverët e tyre të postës elektronike sistemet deri në versionin 4.94.2. Të gjitha versionet e Exim deri në publikimin 4.94.2 janë shpallur të vjetruara (obsolete). Publikimi i versionit të ri u koordinua me shpërndarjet që publikuan njëkohësisht përditësime të paketave: Ubuntu, Arch Linux, FreeBSD, Debian, SUSE dhe Fedora. RHEL dhe CentOS nuk preken nga problemi, pasi Exim nuk përfshihet në depozitën e tyre standarde të paketave (në EPEL përditësimi ende mungon).
Dobësitë e korrigjuara nga distanca:
- CVE-2020-28017: Tejmbushje e numrit të plotë në funksionin receive_add_recipient();
- CVE-2020-28020: Tejmbushje e numrit të plotë në funksionin receive_msg();
- CVE-2020-28023: Lexim jashtë zonës së buffer-it të alokuar në funksionin smtp_setup_msg();
- CVE-2020-28021: Injektim i rreshtit të ri në header-in e skedarit spool;
- CVE-2020-28022: Shkrim dhe lexim jashtë zonës së buffer-it të alokuar në funksionin extract_option();
- CVE-2020-28026: Shkurtim dhe injektim vargu në funksionin spool_read_header();
- CVE-2020-28019: Dështim gjatë rivendosjes së treguesit të funksionit pas shfaqjes së një gabimi BDAT;
- CVE-2020-28024: Tejmbushje nën kufirin e poshtëm të buffer-it në funksionin smtp_ungetc();
- CVE-2020-28018: Qasje te buffer-i pas lirimit të tij (use-after-free) në tls-openssl.c
- CVE-2020-28025: Lexim jashtë zonës së buffer-it të alokuar në funksionin pdkim_finish_bodyhash().
Dobësi lokale:
- CVE-2020-28007: Sulm përmes lidhjes simbolike në direktoriumin e logut të Exim;
- CVE-2020-28008: Sulme ndaj direktoriumit të spool-it;
- CVE-2020-28014: Krijimi i një skedari arbitrar;
- CVE-2021-27216: Fshirja e një skedari arbitrar;
- CVE-2020-28011: Tejmbushje e buffer-it në funksionin queue_run();
- CVE-2020-28010: Shkrim jashtë kufijve të buffer-it në funksionin main();
- CVE-2020-28013: Tejmbushje e buffer-it në funksionin parse_fix_phrase();
- CVE-2020-28016: Shkrim jashtë kufijve të buffer-it në funksionin parse_fix_phrase();
- CVE-2020-28015: Injektim i rreshtit të ri në header-in e skedarit spool;
- CVE-2020-28012: Mungesë e flamurit close-on-exec për një kanal anonim të privilegjuar;
- CVE-2020-28009: Tejmbushje e numrit të plotë në funksionin get_stdinput().
Burimi: opennet.ru
