Miggo Logo

CVE-2025-52889: Incus Allocation of Resources Without Limits allows firewall rule bypass on managed bridge networks

3.4

CVSS Score
3.1

Basic Information

EPSS Score
0.05404%
Published
6/26/2025
Updated
6/28/2025
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:C/C:N/I:N/A:L
Package NameEcosystemVulnerable VersionsFirst Patched Version
github.com/lxc/incus/v6go>= 6.12, <= 6.136.14

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from incorrectly ordered firewall rules for bridged network devices using nftables. The root cause is in commit a7c33301738aede3c035063e973b1d885d9bac7c, which intended to add basic connectivity rules for DHCP and DNS. However, these rules were added to the nftables template before the security.mac_filtering and security.ip_filtering rules were evaluated. This created a bypass, as incoming DHCP and DNS packets were accepted without checking their source MAC or IP addresses.

The primary vulnerable function is (Nftables).InstanceSetupBridgeFilter, which applies the flawed template. The function (*nicBridged).setFilters is also implicated as it was modified to trigger this vulnerable logic by collecting and passing DNS server data to InstanceSetupBridgeFilter.

An attacker inside a virtual machine connected to the bridge could exploit this by sending a large volume of DHCP requests, each with a different spoofed MAC address. Since the MAC filtering was bypassed, the DHCP server would lease a new IP for each request, quickly exhausting the available IP pool and causing a denial-of-service (DoS) for any other legitimate devices trying to connect to the network. The fix, implemented in commit 2516fb19ad8428454cb4edfe70c0a5f0dc1da214, reordered the rules in the nftables template, ensuring that MAC and IP filtering rules are processed before the DHCP and DNS 'accept' rules, thus closing the bypass.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

### Summ*ry W**n usin* *n **L on * **vi** *onn**t** to * *ri***, In*us **n*r*t*s n*t**l*s rul*s *or lo**l s*rvi**s (***P, *NS...) t**t p*rti*lly *yp*ss s**urity options `s**urity.m**_*ilt*rin*`, `s**urity.ipv*_*ilt*rin*` *n* `s**urity.ipv*_*ilt*rin*

Reasoning

T** vuln*r**ility st*ms *rom in*orr**tly or**r** *ir*w*ll rul*s *or *ri**** n*twork **vi**s usin* `n*t**l*s`. T** root **us* is in *ommit `****************************************`, w*i** int*n*** to *** **si* *onn**tivity rul*s *or ***P *n* *NS. *ow