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.
