Alex talks with special guests Nishit Majithia and Matthew Ruffell about a
recent systemd regression on Ubuntu 18.04 LTS plus we cover security updates for
Dnsmasq, the Linux kernel, poppler, .NET 6, rust-regex and more.
Show Notes
Overview
Alex talks with special guests Nishit Majithia and Matthew Ruffell about a
recent systemd regression on Ubuntu 18.04 LTS plus we cover security updates for
Dnsmasq, the Linux kernel, poppler, .NET 6, rust-regex and more.
Failed to properly randomise source port (ie used a fixed port) when
forwarding queries when configured to use a specific server for a given
network interface - could then allow a remote attacker to more easily
perform cache poisoning attacks (ie just need to guess the transmission
ID once know the source port to get a forged reply accepted)
As I said back in Episode 118, this is very similar to the issues that were
discovered back in 2008 by Dan Kaminsky - the whole reason source port
randomisation was introduced as part of the DNS protocol
[USN-5602-1] Linux kernel (Raspberry Pi) vulnerabilities [02:11]
Integer overflow in JBIG2 decoder -> heap buffer overflow via crafted PDF /
JBIG2 image - very similar to CVE-2022-38171 in xpdf
poppler started life as a fork of code from xpdf-3.0 but now has diverged so
much that in general a vuln in one cannot be assumed to exist in the other,
hence the separate CVE IDs for these two vulns
DoS in .NET Core - “a malicious client could cause a stack overflow which may
result in a denial of service attack when an attacker sends a customized
payload that is parsed during model binding”
ReDoS in regex crate - already includes various mitigations against DoS via
untrusted regexes (and these can be tuned by users of the crate) - however was
able to be bypassed by a regex that specified an empty subexpression that
should be matched up to say 294 million times - this then gets compiled but is
able to evade the existing mitigations since doesn’t take any memory - but it
does take a lot of CPU time
Fixed by changing code such that it will take a fake amount of memory for each
empty subexpression and therefore will trip the existing detection logic in a
reasonable amount of time