Schwachstelle in Squid

Eine <a href=”http://securitytracker.com/id/1030838″>Sicherheitslücke</a> in
dem Squid-Proxy hat zur Folge, dass ein entfernter Angreifer Befehle auf dem
betroffenen System ausführen kann. Die Attacke ist mit Hilfe eines geschickt
konstruierten UDP-SNMP-Datenpaketes möglich, welches der Angreifer an den
Squid-Dienst sendet. Der verantwortliche Programmierfehler befindet sich in der
snmpHandleUdp()-Funktion in der snmp_core.cc-Datei. Dort kommt es beim
Schreiben eines Puffers zu einem Off-by-One-Fehler, den der Angreifer für
seine Attacke ausnutzen kann.
Der Patch für diese Schwachstelle ist denkbar einfach:
 
     len = comm_udp_recvfrom(sock,
                             buf,
–                            SNMP_REQUEST_SIZE,
+                            SNMP_REQUEST_SIZE – 1,
                             0,
                             from);
 
     if (len > 0) {
–        buf[len] = ‘\0’;
         debugs(49, 3, “snmpHandleUdp: FD ” << sock << “: received ” << len << ” bytes from ” << from << “.”);
 
         snmp_rq = (SnmpRequest *)xcalloc(1, sizeof(SnmpRequest));
Damit ist die Attacke nicht mehr möglich.
Betroffen sind die Versionen 3.2 und älter.

Nach oben