CVE-2025-52890
Incus vulnerable to antispoofing nftables firewall rule bypass on bridge networks with ACLs
Incus is a system container and virtual machine manager. When using an ACL on a device connected to a bridge, Incus versions 6.12 and 6.13generates nftables rules that partially bypass security options security.mac_filtering, security.ipv4_filtering and security.ipv6_filtering. This can lead to ARP spoofing on the bridge and to fully spoof another VM/container on the same bridge. Commit 254dfd2483ab8de39b47c2258b7f1cf0759231c8 contains a patch for the issue.
Attack profile
How easy it is to exploit
- Attack vector
- Adjacent network
- Complexity
- Low
- Privileges needed
- High
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.1
Incus vulnerable to antispoofing nftables firewall rule bypass on bridge networks with ACLs
Incus is a system container and virtual machine manager. When using an ACL on a device connected to a bridge, Incus versions 6.12 and 6.13generates nftables rules that partially bypass security options security.mac_filtering, security.ipv4_filtering and security.ipv6_filtering. This can lead to ARP spoofing on the bridge and to fully spoof another VM/container on the same bridge. Commit 254dfd2483ab8de39b47c2258b7f1cf0759231c8 contains a patch for the issue.
- Record
CVE-2025-52890- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:H - Weakness
- CWE-863
- Updated
- 2026-11-02
EUVDEUVD-2025-19114
8.1
Incus is a system container and virtual machine manager. When using an ACL on a device connected to a bridge, Incus versions 6.12 and 6.13generates nftables rules that partially bypass security options security.mac_filtering, security.ipv4_filtering and security.ipv6_filtering. This can lead to ARP spoofing on the bridge and to fully spoof another VM/container on the same bridge. Commit 254dfd2483ab8de39b47c2258b7f1cf0759231c8 contains a patch for the issue.
- Record
EUVD-2025-19114- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-p7fw-vjjm-2rwp
8.1
Incus creates nftables rules that partially bypass security options
Summary
When using an ACL on a device connected to a bridge, Incus generates nftables rules that partially bypass security options security.mac_filtering, security.ipv4_filtering and security.ipv6_filtering. This can lead to ARP spoofing on the bridge and to fully spoof another VM/container on the same bridge.
Details
In commit d137a063c2fe2a6983c995ba75c03731bee1557d, a few rules in the bridge input chain are moved to the top of the chain:
ct state established,related accept
iifname "{{.hostName}}" ether type arp accept
iifname "{{.hostName}}" ip6 nexthdr ipv6-icmp icmpv6 type { nd-neighbor-solicit, nd-neighbor-advert } accept
However, these rules accept packets that should be filtered and maybe dropped by later rules in the "MAC filtering", "IPv4 filtering" and "IPv6 filtering" snippets:
iifname "{{.hostName}}" ether type arp arp saddr ether != {{.hwAddr}} drop
iifname "{{.hostName}}" ether type ip6 icmpv6 type 136 @nh,528,48 != {{.hwAddrHex}} drop
...
iifname "{{.hostName}}" ether type arp arp saddr ip != { {{.ipv4NetsList}} } drop
...
iifname "{{.hostName}}" ether type ip6 icmpv6 type 136 {{.ipv6NetsPrefixList}} drop
Basically, the added rules partially bypass the security options security.mac_filtering, security.ipv4_filtering and security.ipv6_filtering. Doing so, they allow an attacker to perform ARP poisoning/spoofing attacks and send malicious Neighbor Advertisement (type 136).
PoC
With this terraform infrastructure:
resource "incus_network_acl" "acl_allow_out" {
name = "acl-allow-out"
egress = [
{
action = "allow"
destination = "0.0.0.0-9.255.255.255,11.0.0.0-172.15.255.255,172.32.0.0-192.167.255.255,192.169.0.0-255.255.255.254"
state = "enabled"
},
]
}
resource "incus_network_acl" "acl_allow_in" {
name = "acl-allow-in"
ingress = [
{
action = "allow"
state = "enabled"
},
]
}
resource "incus_network" "br0" {
name = "br0"
config = {
"ipv4.address" = "10.0.0.1/24"
"ipv4.nat" = "true"
}
}
resource "incus_instance" "machine1" {
name = "machine1"
image = "images:archlinux/cloud"
type = "virtual-machine"
config = {
"limits.memory" = "2GiB"
"security.secureboot" = false
"boot.autostart" = false
"cloud-init.vendor-data" = <<-EOF
#cloud-config
package_update: true
packages:
- dhclient
- tcpdump
runcmd:
- systemctl disable --now systemd.networkd.service
- systemctl disable --now systemd.networkd.socket
EOF
}
device {
type = "disk"
name = "root"
properties = {
pool = "default"
path = "/"
size = "64GiB"
}
}
device {
type = "nic"
name = "eth0"
properties = {
network = incus_network.br0.name
"security.ipv4_filtering" = true
"security.acls" = join(",",
[
incus_network_acl.acl_allow_out.name,
incus_network_acl.acl_allow_in.name,
])
}
}
}
resource "incus_instance" "machine2" {
name = "machine2"
image = "images:archlinux/cloud"
type = "virtual-machine"
config = {
"limits.memory" = "2GiB"
"security.secureboot" = false
"boot.autostart" = false
}
device {
type = "disk"
name = "root"
properties = {
pool = "default"
path = "/"
size = "64GiB"
}
}
device {
type = "nic"
name = "eth0"
properties = {
network = incus_network.br0.name
}
}
}
An attacker in a VM (machine1) change their IP address to another VM (machine2)'s IP. The malicious change is reflected in the ARP table of the host, bypassing the MAC filtering. When the host emits or forwards a packet to machine2's IP, it is sent to machine1.
In addition, as ct state established,related accept is now the first rule in bridge chain input, machine1 can even answer and thus fully spoof the…
- Record
GHSA-p7fw-vjjm-2rwp- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:H - Weakness
- CWE-863
- Updated
- 2026-11-02
NVD
8.1
Incus is a system container and virtual machine manager. When using an ACL on a device connected to a bridge, Incus versions 6.12 and 6.13generates nftables rules that partially bypass security options security.mac_filtering, security.ipv4_filtering and security.ipv6_filtering. This can lead to ARP spoofing on the bridge and to fully spoof another VM/container on the same bridge. Commit 254dfd2483ab8de39b47c2258b7f1cf0759231c8 contains a patch for the issue.
- Record
CVE-2025-52890- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:H - Weakness
- CWE-863
- Updated
- 2026-11-02
OSVALPINE-CVE-2025-52890
8.1
Incus is a system container and virtual machine manager. When using an ACL on a device connected to a bridge, Incus versions 6.12 and 6.13generates nftables rules that partially bypass security options security.mac_filtering, security.ipv4_filtering and security.ipv6_filtering. This can lead to ARP spoofing on the bridge and to fully spoof another VM/container on the same bridge. Commit 254dfd2483ab8de39b47c2258b7f1cf0759231c8 contains a patch for the issue.
- Record
ALPINE-CVE-2025-52890- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:H - Updated
- 2026-11-03
OSV
8.1
Incus vulnerable to antispoofing nftables firewall rule bypass on bridge networks with ACLs
Incus is a system container and virtual machine manager. When using an ACL on a device connected to a bridge, Incus versions 6.12 and 6.13generates nftables rules that partially bypass security options security.mac_filtering, security.ipv4_filtering and security.ipv6_filtering. This can lead to ARP spoofing on the bridge and to fully spoof another VM/container on the same bridge. Commit 254dfd2483ab8de39b47c2258b7f1cf0759231c8 contains a patch for the issue.
- Record
CVE-2025-52890- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:H - Weakness
- CWE-863
- Updated
- 2026-11-02
Show 5 moreShow less
OSVGHSA-p7fw-vjjm-2rwp
8.1
Incus creates nftables rules that partially bypass security options
Summary
When using an ACL on a device connected to a bridge, Incus generates nftables rules that partially bypass security options security.mac_filtering, security.ipv4_filtering and security.ipv6_filtering. This can lead to ARP spoofing on the bridge and to fully spoof another VM/container on the same bridge.
Details
In commit d137a063c2fe2a6983c995ba75c03731bee1557d, a few rules in the bridge input chain are moved to the top of the chain:
ct state established,related accept
iifname "{{.hostName}}" ether type arp accept
iifname "{{.hostName}}" ip6 nexthdr ipv6-icmp icmpv6 type { nd-neighbor-solicit, nd-neighbor-advert } accept
However, these rules accept packets that should be filtered and maybe dropped by later rules in the "MAC filtering", "IPv4 filtering" and "IPv6 filtering" snippets:
iifname "{{.hostName}}" ether type arp arp saddr ether != {{.hwAddr}} drop
iifname "{{.hostName}}" ether type ip6 icmpv6 type 136 @nh,528,48 != {{.hwAddrHex}} drop
...
iifname "{{.hostName}}" ether type arp arp saddr ip != { {{.ipv4NetsList}} } drop
...
iifname "{{.hostName}}" ether type ip6 icmpv6 type 136 {{.ipv6NetsPrefixList}} drop
Basically, the added rules partially bypass the security options security.mac_filtering, security.ipv4_filtering and security.ipv6_filtering. Doing so, they allow an attacker to perform ARP poisoning/spoofing attacks and send malicious Neighbor Advertisement (type 136).
PoC
With this terraform infrastructure:
resource "incus_network_acl" "acl_allow_out" {
name = "acl-allow-out"
egress = [
{
action = "allow"
destination = "0.0.0.0-9.255.255.255,11.0.0.0-172.15.255.255,172.32.0.0-192.167.255.255,192.169.0.0-255.255.255.254"
state = "enabled"
},
]
}
resource "incus_network_acl" "acl_allow_in" {
name = "acl-allow-in"
ingress = [
{
action = "allow"
state = "enabled"
},
]
}
resource "incus_network" "br0" {
name = "br0"
config = {
"ipv4.address" = "10.0.0.1/24"
"ipv4.nat" = "true"
}
}
resource "incus_instance" "machine1" {
name = "machine1"
image = "images:archlinux/cloud"
type = "virtual-machine"
config = {
"limits.memory" = "2GiB"
"security.secureboot" = false
"boot.autostart" = false
"cloud-init.vendor-data" = <<-EOF
#cloud-config
package_update: true
packages:
- dhclient
- tcpdump
runcmd:
- systemctl disable --now systemd.networkd.service
- systemctl disable --now systemd.networkd.socket
EOF
}
device {
type = "disk"
name = "root"
properties = {
pool = "default"
path = "/"
size = "64GiB"
}
}
device {
type = "nic"
name = "eth0"
properties = {
network = incus_network.br0.name
"security.ipv4_filtering" = true
"security.acls" = join(",",
[
incus_network_acl.acl_allow_out.name,
incus_network_acl.acl_allow_in.name,
])
}
}
}
resource "incus_instance" "machine2" {
name = "machine2"
image = "images:archlinux/cloud"
type = "virtual-machine"
config = {
"limits.memory" = "2GiB"
"security.secureboot" = false
"boot.autostart" = false
}
device {
type = "disk"
name = "root"
properties = {
pool = "default"
path = "/"
size = "64GiB"
}
}
device {
type = "nic"
name = "eth0"
properties = {
network = incus_network.br0.name
}
}
}
An attacker in a VM (machine1) change their IP address to another VM (machine2)'s IP. The malicious change is reflected in the ARP table of the host, bypassing the MAC filtering. When the host emits or forwards a packet to machine2's IP, it is sent to machine1.
In addition, as ct state established,related accept is now the first rule in bridge chain input, machine1 can even answer and thus fully spoof the…
- Record
GHSA-p7fw-vjjm-2rwp- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:H - Weakness
- CWE-863
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2025-52890
8.1
Incus is a system container and virtual machine manager. When using an ACL on a device connected to a bridge, Incus versions 6.12 and 6.13generates nftables rules that partially bypass security options security.mac_filtering, security.ipv4_filtering and security.ipv6_filtering. This can lead to ARP spoofing on the bridge and to fully spoof another VM/container on the same bridge. Commit 254dfd2483ab8de39b47c2258b7f1cf0759231c8 contains a patch for the issue.
- Record
UBUNTU-CVE-2025-52890- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:H - Updated
- 2026-11-06
OSVGO-2025-3782 No score
Incus creates nftables rules that partially bypass security options in github.com/lxc/incus
Incus creates nftables rules that partially bypass security options in github.com/lxc/incus
- Record
GO-2025-3782- Updated
- 2026-11-02
OSVopenSUSE-SU-2025:15317-1 No score
incus-6.14-1.1 on GA media
These are all security issues fixed in the incus-6.14-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2025:15317-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2025:15405-1 No score
govulncheck-vulndb-0.0.20250730T213748-1.1 on GA media
These are all security issues fixed in the govulncheck-vulndb-0.0.20250730T213748-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2025:15405-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
github.com/lxc/incus/v6Go |
6.12.0 to 6.13.0 | 6.14.0 |
incus-featureAlpine:v3.23 |
before 6.14.0-r0 | 6.14.0-r0 |
incus-featureAlpine:v3.24 |
before 6.14.0-r0 | 6.14.0-r0 |
github.com/lxc/incus/v6Go |
6.12.0 up to 6.14.0 | 6.14.0 |
github.com/lxc/incusGo |
All versions | None known |
incusUbuntu:25.10 |
All versions, plus listed versions 6.0.3-46.0.4-2 |
None known |
incusUbuntu:26.10 |
All versions, plus listed versions 6.0.5-87.0.1-5 |
None known |
incusopenSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 6.14-1.1 | 6.14-1.1 |
govulncheck-vulndbopenSUSE:Tumbleweed From an advisory covering 56 CVEs |
before 0.0.20250730T213748-1.1 | 0.0.20250730T213748-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | OSV | |
| affected | ||
| affected, facts | OSV | |
| affected, aliases, references | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-52890 is a high vulnerability (CVSS 8.1) in Lxc Incus, published June 25, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.23%, the 13th percentile. Fixed in github.com/lxc/incus/v6 6.14.0.
References
github.com/lxc/incus/security/advisories/GHSA-p7fw-vjjm-2rwp
github.com/lxc/incus/commit/254dfd2483ab8de39b47c2258b7f1cf0759231c8
nvd.nist.gov/vuln/detail/CVE-2025-52890
github.com/advisories/GHSA-p7fw-vjjm-2rwp
security.alpinelinux.org/vuln/CVE-2025-52890
github.com/CVEProject/cvelistV5/tree/main/cves/2025/52xxx/CVE-2025-52890.json
Show 59 moreShow less
github.com/lxc/incus
ubuntu.com/security/CVE-2025-52890
cve.org/CVERecord?id=CVE-2025-52890
suse.com/security/cve/CVE-2025-52889
suse.com/security/cve/CVE-2025-52890
suse.com/security/cve/CVE-2024-44905
suse.com/security/cve/CVE-2024-44906
suse.com/security/cve/CVE-2024-56731
suse.com/security/cve/CVE-2025-0928
suse.com/security/cve/CVE-2025-1088
suse.com/security/cve/CVE-2025-30086
suse.com/security/cve/CVE-2025-32019
suse.com/security/cve/CVE-2025-3227
suse.com/security/cve/CVE-2025-3228
suse.com/security/cve/CVE-2025-3415
suse.com/security/cve/CVE-2025-4563
suse.com/security/cve/CVE-2025-4656
suse.com/security/cve/CVE-2025-46702
suse.com/security/cve/CVE-2025-4674
suse.com/security/cve/CVE-2025-47281
suse.com/security/cve/CVE-2025-47871
suse.com/security/cve/CVE-2025-47943
suse.com/security/cve/CVE-2025-4922
suse.com/security/cve/CVE-2025-4981
suse.com/security/cve/CVE-2025-49825
suse.com/security/cve/CVE-2025-5030
suse.com/security/cve/CVE-2025-51471
suse.com/security/cve/CVE-2025-52477
suse.com/security/cve/CVE-2025-52893
suse.com/security/cve/CVE-2025-52894
suse.com/security/cve/CVE-2025-52900
suse.com/security/cve/CVE-2025-52901
suse.com/security/cve/CVE-2025-52902
suse.com/security/cve/CVE-2025-52903
suse.com/security/cve/CVE-2025-52904
suse.com/security/cve/CVE-2025-52995
suse.com/security/cve/CVE-2025-52996
suse.com/security/cve/CVE-2025-52997
suse.com/security/cve/CVE-2025-53512
suse.com/security/cve/CVE-2025-53513
suse.com/security/cve/CVE-2025-53547
suse.com/security/cve/CVE-2025-53632
suse.com/security/cve/CVE-2025-53633
suse.com/security/cve/CVE-2025-53634
suse.com/security/cve/CVE-2025-53826
suse.com/security/cve/CVE-2025-53893
suse.com/security/cve/CVE-2025-53945
suse.com/security/cve/CVE-2025-54059
suse.com/security/cve/CVE-2025-54379
suse.com/security/cve/CVE-2025-5689
suse.com/security/cve/CVE-2025-5981
suse.com/security/cve/CVE-2025-6023
suse.com/security/cve/CVE-2025-6032
suse.com/security/cve/CVE-2025-6224
suse.com/security/cve/CVE-2025-6226
suse.com/security/cve/CVE-2025-6227
suse.com/security/cve/CVE-2025-6233
suse.com/security/cve/CVE-2025-6264
suse.com/security/cve/CVE-2025-6624
Left out here: the rest of 2 source descriptions. The JSON record has them.