FKIE_CVE-2024-26910

Vulnerability from fkie_nvd - Published: 2024-04-17 16:15 - Updated: 2026-06-17 07:18
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: ipset: fix performance regression in swap operation The patch "netfilter: ipset: fix race condition between swap/destroy and kernel side add/del/test", commit 28628fa9 fixes a race condition. But the synchronize_rcu() added to the swap function unnecessarily slows it down: it can safely be moved to destroy and use call_rcu() instead. Eric Dumazet pointed out that simply calling the destroy functions as rcu callback does not work: sets with timeout use garbage collectors which need cancelling at destroy which can wait. Therefore the destroy functions are split into two: cancelling garbage collectors safely at executing the command received by netlink and moving the remaining part only into the rcu callback.
References
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/653bc5e6d9995d7d5f497c665b321875a626161cPatch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/970709a67696b100a57b33af1a3d75fc34b747ebPatch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/97f7cf1cd80eeed3b7c808b7c12463295c751001Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/a24d5f2ac8ef702a58e55ec276aad29b4bd97e05Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/b93a6756a01f4fd2f329a39216f9824c56a66397Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/c2dc077d8f722a1c73a24e674f925602ee5ece49Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/c7f2733e5011bfd136f1ca93497394d43aa76225Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/653bc5e6d9995d7d5f497c665b321875a626161cPatch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/970709a67696b100a57b33af1a3d75fc34b747ebPatch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/97f7cf1cd80eeed3b7c808b7c12463295c751001Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/a24d5f2ac8ef702a58e55ec276aad29b4bd97e05Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/b93a6756a01f4fd2f329a39216f9824c56a66397Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/c2dc077d8f722a1c73a24e674f925602ee5ece49Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/c7f2733e5011bfd136f1ca93497394d43aa76225Patch
af854a3a-2127-422b-91ae-364da2661108https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html

{
  "affected": [
    {
      "affectedData": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "include/linux/netfilter/ipset/ip_set.h",
            "net/netfilter/ipset/ip_set_bitmap_gen.h",
            "net/netfilter/ipset/ip_set_core.c",
            "net/netfilter/ipset/ip_set_hash_gen.h",
            "net/netfilter/ipset/ip_set_list_set.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "c7f2733e5011bfd136f1ca93497394d43aa76225",
              "status": "affected",
              "version": "427deb5ba5661c4ae1cfb35955d2e01bd5f3090a",
              "versionType": "git"
            },
            {
              "lessThan": "a24d5f2ac8ef702a58e55ec276aad29b4bd97e05",
              "status": "affected",
              "version": "e7152a138a5ac77439ff4e7a7533448a7d4c260d",
              "versionType": "git"
            },
            {
              "lessThan": "c2dc077d8f722a1c73a24e674f925602ee5ece49",
              "status": "affected",
              "version": "8bb930c3a1eacec1b14817f565ff81667c7c5dfa",
              "versionType": "git"
            },
            {
              "lessThan": "653bc5e6d9995d7d5f497c665b321875a626161c",
              "status": "affected",
              "version": "875ee3a09e27b7adb7006ca6d16faf7f33415aa5",
              "versionType": "git"
            },
            {
              "lessThan": "b93a6756a01f4fd2f329a39216f9824c56a66397",
              "status": "affected",
              "version": "23c31036f862582f98386120aee55c9ae23d7899",
              "versionType": "git"
            },
            {
              "lessThan": "970709a67696b100a57b33af1a3d75fc34b747eb",
              "status": "affected",
              "version": "28628fa952fefc7f2072ce6e8016968cc452b1ba",
              "versionType": "git"
            },
            {
              "lessThan": "97f7cf1cd80eeed3b7c808b7c12463295c751001",
              "status": "affected",
              "version": "28628fa952fefc7f2072ce6e8016968cc452b1ba",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "a12606e5ad0cee8f4ba3ec68561c4d6275d2df57",
              "versionType": "git"
            },
            {
              "lessThan": "5.4.269",
              "status": "affected",
              "version": "5.4.264",
              "versionType": "semver"
            },
            {
              "lessThan": "5.10.210",
              "status": "affected",
              "version": "5.10.204",
              "versionType": "semver"
            },
            {
              "lessThan": "5.15.149",
              "status": "affected",
              "version": "5.15.143",
              "versionType": "semver"
            },
            {
              "lessThan": "6.1.79",
              "status": "affected",
              "version": "6.1.68",
              "versionType": "semver"
            },
            {
              "lessThan": "6.6.18",
              "status": "affected",
              "version": "6.6.7",
              "versionType": "semver"
            },
            {
              "lessThan": "4.20",
              "status": "affected",
              "version": "4.19.302",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "include/linux/netfilter/ipset/ip_set.h",
            "net/netfilter/ipset/ip_set_bitmap_gen.h",
            "net/netfilter/ipset/ip_set_core.c",
            "net/netfilter/ipset/ip_set_hash_gen.h",
            "net/netfilter/ipset/ip_set_list_set.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.7"
            },
            {
              "lessThan": "6.7",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.4.*",
              "status": "unaffected",
              "version": "5.4.269",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.210",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.149",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.79",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.18",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.7.*",
              "status": "unaffected",
              "version": "6.7.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.8",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "cpeMatch": [
            {
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "matchCriteriaId": "48E561A5-2F59-4E74-BFAB-39B8D844FD15",
              "versionEndExcluding": "5.4.269",
              "vulnerable": true
            },
            {
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "matchCriteriaId": "F5CB4CA6-A9A0-4AFD-9102-8CF94D708170",
              "versionEndExcluding": "5.10.210",
              "versionStartIncluding": "5.5",
              "vulnerable": true
            },
            {
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "matchCriteriaId": "0D0465BB-4053-4E15-9137-6696EBAE90FD",
              "versionEndExcluding": "5.15.149",
              "versionStartIncluding": "5.11",
              "vulnerable": true
            },
            {
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "matchCriteriaId": "656E2F29-1779-4EFC-AA64-8F984E2885B1",
              "versionEndExcluding": "6.1.79",
              "versionStartIncluding": "5.16",
              "vulnerable": true
            },
            {
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "matchCriteriaId": "BD961E49-FEDA-47CF-BF23-4D2BD942B4E0",
              "versionEndExcluding": "6.6.18",
              "versionStartIncluding": "6.2",
              "vulnerable": true
            },
            {
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "matchCriteriaId": "C6D6A5C8-7308-42A9-8A72-ABF3DEA4BB82",
              "versionEndExcluding": "6.7.6",
              "versionStartIncluding": "6.7",
              "vulnerable": true
            }
          ],
          "negate": false,
          "operator": "OR"
        }
      ]
    }
  ],
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: ipset: fix performance regression in swap operation\n\nThe patch \"netfilter: ipset: fix race condition between swap/destroy\nand kernel side add/del/test\", commit 28628fa9 fixes a race condition.\nBut the synchronize_rcu() added to the swap function unnecessarily slows\nit down: it can safely be moved to destroy and use call_rcu() instead.\n\nEric Dumazet pointed out that simply calling the destroy functions as\nrcu callback does not work: sets with timeout use garbage collectors\nwhich need cancelling at destroy which can wait. Therefore the destroy\nfunctions are split into two: cancelling garbage collectors safely at\nexecuting the command received by netlink and moving the remaining\npart only into the rcu callback."
    },
    {
      "lang": "es",
      "value": "En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: netfilter: ipset: corrige la regresi\u00f3n de rendimiento en la operaci\u00f3n de intercambio El parche \"netfilter: ipset: corrige la condici\u00f3n de ejecuci\u00f3n entre swap/destroy y add/del/test del lado del kernel\", commit 28628fa9 corrige un condici\u00f3n de ejecuci\u00f3n. Pero elsync_rcu() agregado a la funci\u00f3n swap la ralentiza innecesariamente: se puede mover con seguridad para destruir y usar call_rcu() en su lugar. Eric Dumazet se\u00f1al\u00f3 que simplemente llamar a las funciones de destrucci\u00f3n como devoluci\u00f3n de llamada de rcu no funciona: los conjuntos con tiempo de espera usan recolectores de basura que necesitan cancelarse en la destrucci\u00f3n y que pueden esperar. Por lo tanto, las funciones de destrucci\u00f3n se dividen en dos: cancelar los recolectores de basura de forma segura al ejecutar el comando recibido por netlink y mover la parte restante solo a la devoluci\u00f3n de llamada de rcu."
    }
  ],
  "id": "CVE-2024-26910",
  "lastModified": "2026-06-17T07:18:40.137",
  "metrics": {
    "cvssMetricV31": [
      {
        "cvssData": {
          "attackComplexity": "HIGH",
          "attackVector": "LOCAL",
          "availabilityImpact": "HIGH",
          "baseScore": 4.7,
          "baseSeverity": "MEDIUM",
          "confidentialityImpact": "NONE",
          "integrityImpact": "NONE",
          "privilegesRequired": "LOW",
          "scope": "UNCHANGED",
          "userInteraction": "NONE",
          "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H",
          "version": "3.1"
        },
        "exploitabilityScore": 1.0,
        "impactScore": 3.6,
        "source": "nvd@nist.gov",
        "type": "Primary"
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2024-26910",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "timestamp": "2024-04-23T14:01:29.284146Z",
          "version": "2.0.3"
        }
      }
    ]
  },
  "published": "2024-04-17T16:15:07.860",
  "references": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ],
      "url": "https://git.kernel.org/stable/c/653bc5e6d9995d7d5f497c665b321875a626161c"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ],
      "url": "https://git.kernel.org/stable/c/970709a67696b100a57b33af1a3d75fc34b747eb"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ],
      "url": "https://git.kernel.org/stable/c/97f7cf1cd80eeed3b7c808b7c12463295c751001"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ],
      "url": "https://git.kernel.org/stable/c/a24d5f2ac8ef702a58e55ec276aad29b4bd97e05"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ],
      "url": "https://git.kernel.org/stable/c/b93a6756a01f4fd2f329a39216f9824c56a66397"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ],
      "url": "https://git.kernel.org/stable/c/c2dc077d8f722a1c73a24e674f925602ee5ece49"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ],
      "url": "https://git.kernel.org/stable/c/c7f2733e5011bfd136f1ca93497394d43aa76225"
    },
    {
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Patch"
      ],
      "url": "https://git.kernel.org/stable/c/653bc5e6d9995d7d5f497c665b321875a626161c"
    },
    {
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Patch"
      ],
      "url": "https://git.kernel.org/stable/c/970709a67696b100a57b33af1a3d75fc34b747eb"
    },
    {
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Patch"
      ],
      "url": "https://git.kernel.org/stable/c/97f7cf1cd80eeed3b7c808b7c12463295c751001"
    },
    {
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Patch"
      ],
      "url": "https://git.kernel.org/stable/c/a24d5f2ac8ef702a58e55ec276aad29b4bd97e05"
    },
    {
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Patch"
      ],
      "url": "https://git.kernel.org/stable/c/b93a6756a01f4fd2f329a39216f9824c56a66397"
    },
    {
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Patch"
      ],
      "url": "https://git.kernel.org/stable/c/c2dc077d8f722a1c73a24e674f925602ee5ece49"
    },
    {
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Patch"
      ],
      "url": "https://git.kernel.org/stable/c/c7f2733e5011bfd136f1ca93497394d43aa76225"
    },
    {
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "url": "https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html"
    }
  ],
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "vulnStatus": "Modified",
  "weaknesses": [
    {
      "description": [
        {
          "lang": "en",
          "value": "CWE-362"
        }
      ],
      "source": "nvd@nist.gov",
      "type": "Primary"
    }
  ]
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline

Sightings and recorded dates, grouped by day · UTC

JSON
Events included in the timeline

Loading timeline…


    Loading…

    Loading…

    Loading…

    Related by attack behaviour

    Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.