Package: p0f
Version: 3.06b-2
Severity: grave
Tags: security

Sending "malformed" (or legacy format(!!?)) packets to p0f's socket results in 
a crash of the service:

[+] Closed 1 file descriptor.
[+] Loaded 314 signatures from '/etc/p0f/p0f.fp'.
[+] Intercepting traffic on default interface 'eth0'.
[+] Custom filtering rule enabled: dst port 25 [+VLAN]
[+] Listening on API socket '/var/run/dc-p0f.socket' (max 20 clients).
[+] Privileges dropped: uid 112, gid 114, root '/var/spool/qpsmtpd'.
[+] Entered main event loop.

[-] SYSTEM ERROR : read() on API socket fails despite POLLIN.
        Location : live_event_loop(), p0f.c:916
      OS message : Connection reset by peer


This issue is discussed, from another angle, on the milter mailing list here: 
http://comments.gmane.org/gmane.mail.sendmail.milter.greylist/3184

This bug is not about getting milter (or any other p0f client) to work, but 
rather about the fact that it is so trivial to launch a DoS attack against p0f.

Any attacker with access to p0f's socket has the ability to crash the service.  
p0f should rather accept the bogus input and behave properly (issue an error, 
disconnect, etc). ? Testing suggests that this issue is likely resolved in 
later versions of the upstream package.

Reply via email to