Impact
A PPP peer system that authenticates itself to pppd using the EAP-TLS protocol can, by sending an extra EAP-TLS Ack packet after the end of the authentication sequence, trigger the use of memory that has been freed (UAF) in pppd, followed by an attempt by pppd to free that memory again. The result is memory corruption in pppd, which runs as root, generally followed by the pppd process aborting when the double free is detected. This denies service to that peer but does not impact any other PPP connection, because each pppd process only serves one peer.
The extra EAP-TLS Ack packet is not something that a correct EAP-TLS implementation would send; the peer would have to be malicious or buggy. The peer would need to have a certificate signed by a CA recognized by the local pppd and be able to authenticate itself using that certificate.
Patches
PR #625 fixes it via the commit "pppd/EAP-TLS: Fix use-after-free bug in eapTlsRecvClient state". This patch is in v2.5.4.
Workarounds
Don't use EAP-TLS authentication for any untrusted peer.
References
Impact
A PPP peer system that authenticates itself to pppd using the EAP-TLS protocol can, by sending an extra EAP-TLS Ack packet after the end of the authentication sequence, trigger the use of memory that has been freed (UAF) in pppd, followed by an attempt by pppd to free that memory again. The result is memory corruption in pppd, which runs as root, generally followed by the pppd process aborting when the double free is detected. This denies service to that peer but does not impact any other PPP connection, because each pppd process only serves one peer.
The extra EAP-TLS Ack packet is not something that a correct EAP-TLS implementation would send; the peer would have to be malicious or buggy. The peer would need to have a certificate signed by a CA recognized by the local pppd and be able to authenticate itself using that certificate.
Patches
PR #625 fixes it via the commit "pppd/EAP-TLS: Fix use-after-free bug in eapTlsRecvClient state". This patch is in v2.5.4.
Workarounds
Don't use EAP-TLS authentication for any untrusted peer.
References