Serwer ASU (Attended Sysupgrade Server) dla dystrybucji opartych na OpenWrt stosuje obcięte do 12 znaków skróty SHA-256 do identyfikacji żądań budowania obrazów, co drastycznie obniża entropię i umożliwia atakującemu wygenerowanie kolizji. W połączeniu z podatnością command injection w Imagebuilderze pozwala to na podrzucenie złośliwego firmware'u podpisanego legalnym kluczem budowania.
▸ Pokaż oryginał (EN)
openwrt/asu is an image on demand server for OpenWrt based distributions. The request hashing mechanism truncates SHA-256 hashes to only 12 characters. This significantly reduces entropy, making it feasible for an attacker to generate collisions. By exploiting this, a previously built malicious image can be served in place of a legitimate one, allowing the attacker to "poison" the artifact cache and deliver compromised images to unsuspecting users. This can be combined with other attacks, such as a command injection in Imagebuilder that allows malicious users to inject arbitrary commands into the build process, resulting in the production of malicious firmware images signed with the legitimate build key. This has been patched with 920c8a1.
Mechanizm haszowania żądań skraca skróty SHA-256 do zaledwie 12 znaków, co czyni generowanie kolizji praktycznie wykonalnym. Atakujący może wcześniej zbudować złośliwy obraz, który uzyska ten sam skrócony hash co obraz legitymowany, a następnie podmienić go w pamięci podręcznej artefaktów (cache poisoning). Dodatkowo, podatność command injection w komponencie Imagebuilder umożliwia złośliwemu użytkownikowi wstrzyknięcie dowolnych poleceń do procesu budowania obrazu. Efektem końcowym jest produkcja i dystrybucja skompromitowanego firmware'u podpisanego autentycznym kluczem budowania, co sprawia, że złośliwy obraz wygląda na w pełni legitymowany.
Atakujący może dostarczać użytkownikom złośliwe obrazy firmware'u podpisane legalnym kluczem budowania, co prowadzi do pełnego przejęcia kontroli nad urządzeniami aktualizującymi się za pośrednictwem serwera ASU. Możliwe jest naruszenie poufności, integralności i dostępności zainfekowanych urządzeń sieciowych.
Należy zaktualizować openwrt/asu do wersji zawierającej patch 920c8a13d97b4d4095f0d939cf0aaae777e0f87e dostępny w repozytorium GitHub projektu. Szczegóły dostępne w security advisory GHSA-r3gq-96h6-3v7q.
Serwer openwrt/asu (Image on Demand Server dla dystrybucji opartych na OpenWrt) we wszystkich wersjach przed commitem 920c8a1.
Podatność jest kombinacją dwóch słabości: użycia zbyt słabego (skróconego) mechanizmu haszowania (CWE-328) umożliwiającego cache poisoning oraz command injection w Imagebuilderze. Obie muszą być zaadresowane łącznie — sam patch 920c8a1 dotyczy mechanizmu haszowania.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X