LiveActive security incident?Get immediate response
CVE Record

CVE-2021-47546: ipv6: fix memory leak in fib6_rule_suppress

In the Linux kernel, the following vulnerability has been resolved: ipv6: fix memory leak in fib6_rule_suppress The kernel leaks memory when a `fib` rule is present in IPv6 nftables firewall rules and a suppress_prefix rule is present in the IPv6 routing rules (used by certain tools such as wg-quick). In such scenarios, every incoming packet will leak an allocation in `ip6_dst_cache` slab cache. After some hours of `bpftrace`-ing and source code reading, I tracked down the issue to ca7a03c41753 ("ipv6: do not free rt if FIB_LOOKUP_NOREF is set on suppress rule"). The problem with that change is that the generic `args->flags` always have `FIB_LOOKUP_NOREF` set[1][2] but the IPv6-specific flag `RT6_LOOKUP_F_DST_NOREF` might not be, leading to `fib6_rule_suppress` not decreasing the refcount when needed. How to reproduce: - Add the following nftables rule to a prerouting chain: meta nfproto ipv6 fib saddr . mark . iif oif missing drop This can be done with: sudo nft create table inet test sudo nft create chain inet test test_chain '{ type filter hook prerouting priority filter + 10; policy accept; }' sudo nft add rule inet test test_chain meta nfproto ipv6 fib saddr . mark . iif oif missing drop - Run: sudo ip -6 rule add table main suppress_prefixlength 0 - Watch `sudo slabtop -o | grep ip6_dst_cache` to see memory usage increase with every incoming ipv6 packet. This patch exposes the protocol-specific flags to the protocol specific `suppress` function, and check the protocol-specific `flags` argument for RT6_LOOKUP_F_DST_NOREF instead of the generic FIB_LOOKUP_NOREF when decreasing the refcount, like this. [1]: https://github.com/torvalds/linux/blob/ca7a03c4175366a92cee0ccc4fec0038c3266e26/net/ipv6/fib6_rules.c#L71 [2]: https://github.com/torvalds/linux/blob/ca7a03c4175366a92cee0ccc4fec0038c3266e26/net/ipv6/fib6_rules.c#L99

UnknownCVSS not scoredNot KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

This Linux kernel issue can leak memory during IPv6 packet handling when specific nftables and IPv6 routing-rule features are used together. On exposed systems, repeated IPv6 traffic could steadily consume kernel memory and threaten availability. The source bundle does not show active exploitation or a CVSS score.

Executive priority

Patch during the next regular Linux maintenance cycle, sooner for IPv6-enabled gateways, VPN hosts, or high-traffic systems using advanced routing and nftables policy. Business urgency is availability-focused, not data theft based on current evidence.

Technical view

The bug is in fib6_rule_suppress. Generic lookup flags could indicate no reference handling while the IPv6-specific RT6_LOOKUP_F_DST_NOREF flag did not, causing ip6_dst_cache references not to be released. Stable kernel fixes adjust suppress handling to use protocol-specific flags.

Likely exposure

Exposure is most likely on Linux systems using IPv6 nftables fib matching together with IPv6 suppress_prefix routing rules, including configurations associated with tools such as wg-quick. Systems without that combined configuration are less likely to be affected based on the provided description.

Exploitation context

The bundle includes a reproducible local configuration condition but no KEV listing, exploit report, or public abuse evidence. Treat this primarily as an availability risk where network traffic can amplify a kernel memory leak after the vulnerable configuration exists.

Researcher notes

The source identifies ca7a03c41753 as the regressing change and names fixed stable commits. The affected-version metadata is sparse and should be mapped through each Linux distribution’s kernel packages before making fleet-wide conclusions.

Mitigation direction

  • Update affected Linux kernels to vendor builds containing the stable fixes.
  • Prioritize internet-facing or high-traffic IPv6 systems using nftables fib rules.
  • Review distribution advisories for exact fixed package versions.
  • Temporarily reduce use of the triggering rule combination where operationally safe.
  • Monitor kernel memory and slab cache growth until patched.

Validation and detection

  • Inventory Linux kernel versions against vendor advisories and the listed stable fixes.
  • Check whether IPv6 nftables fib matching is configured.
  • Check whether IPv6 suppress_prefix routing rules are present.
  • Correlate unexplained memory growth with IPv6 traffic on matching systems.
  • Confirm patched kernels no longer show ip6_dst_cache growth under authorized testing.
Prepared
Confidence
medium
Sources
6

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2021-47546 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Unknown
CVSS
Not scored
Known Exploited
No
Published
Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

0CVSS vectors
3Timeline events
2ADP providers
5Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: partial

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
other:ssvc
CVECVE Program Container
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinuxca7a03c4175366a92cee0ccc4fec0038c3266e26, ca7a03c4175366a92cee0ccc4fec0038c3266e26, ca7a03c4175366a92cee0ccc4fec0038c3266e26, ca7a03c4175366a92cee0ccc4fec0038c3266e26, d37c966752043733eb847dd897d6e3405084c559, ecc265624956ea784cb2bd2b31a95bd54c4f5f13unaffected
LinuxLinux5.4, 0, 5.4.164, 5.10.84, 5.15.7, 5.16affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.