CARVIEW |
Select Language
HTTP/2 200
date: Wed, 30 Jul 2025 14:20:15 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"68616f6fd6bd0a93eed0562cfb0a8e03"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=Rzb%2F5Lz47Z9W%2FzDKd7nXXiajn2K74aTz8TBEcdE56wQ8onU5p5VnMnJusQWploxdqNNVo81pMDWZjJJEp%2F57tTG12uA2vDvo1wlzGr%2B8NGuX0DZSlOZHpeT%2FzWoXl4PnX1iNfnSW%2BvYCCXIdOo6Iake6Y0ey1aaNfQDHSabu8HiildPa1ES6SEI1zjABFtFMSRWPGOI9FJajTBASsj8J4L7QiJxtNH9ktPe6yyRFaltE0cfD1eWnsi5JEAHTiKjKTHQytVWxl8H2fMZUdyvI4Q%3D%3D--J1r1%2BFBOfayLFbWA--BK6ejakUka5jY6ZdhOTsng%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.885756007.1753885215; Path=/; Domain=github.com; Expires=Thu, 30 Jul 2026 14:20:15 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 30 Jul 2026 14:20:15 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: BC12:1B249:18320D:1B74B1:688A2A1F
Integer Overflow in eBPF DEVMAP map_delete_elem Leads to Out-of-Bounds · Advisory · google/security-research · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 480
Integer Overflow in eBPF DEVMAP map_delete_elem Leads to Out-of-Bounds
High
Package
eBPF DEVMAP
(Linux Kernel)
Affected versions
> v4.18
Patched versions
https://kernel.dance/#ab244dd7cf4c291f82faacdc50b45cc0f55b674d
Description
Severity
High
/ 10
CVSS v3 base metrics
Attack vector
Local
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVE ID
CVE-2024-56615
Weaknesses
No CWEs
Credits
-
JordyZomer Finder
You can’t perform that action at this time.
Summary
AF_XDP sockets provide a high-performance mechanism for packet processing within the kernel. This bug report describes an integer overflow vulnerability in the
devmap_map_delete_elem
(function) when handling eBPF (DEVMAP) maps, potentially leading to an out-of-bounds write and subsequent security risks.Severity
Moderate - This vulnerability can allow an attacker to This could allow them to hijack the control flow of the kernel and execute arbitrary code with kernel privilege and or a denial of serivce.
Proof of Concept
In the
dev_map_delete_elem
function an unsigned integer (map->max_entries
) is compared with a user-controlled signed integer (k). Due to implicit type conversion, a large unsigned value formap->max_entries
can bypass the intended bounds check:This allows k to hold a negative value (between -2147483648 and -2), which is then used as an array index in
dtab->netdev_map[k]
, which results in an out-of-bounds access.The
xchg
operation can then be used to cause an out-of-bounds write. Moreover, the invalidold_dev
passed to__dev_map_entry_free
can lead to further memory corruption.Further Analysis
To create an DEVMAP map and delete elements from it a user typically requires the
CAP_BPF
capability. This capability grants the necessary privileges to load eBPF programs, create and manage BPF maps, and perform operations on them.It's important to note that unprivileged users might still be able to exploit this vulnerability if they have access to:
A program or process that already has
CAP_BPF
: If a vulnerable program withCAP_BPF
allows user input to influence thedelete_elem
functions, an unprivileged user could potentially exploit the integer overflow.Recommendation
Change the data type of k to u32 to ensure consistent unsignedness in the comparison. This will prevent the negative overflow from bypassing the bounds check.
Timeline
Date reported: 10/30/2024
Date fixed: 12/10/2024
Date disclosed: 01/09/2025