CVE-2026-56115
Bootimus 0.1.70 Broken Access Control via JWTMiddleware Authorization Bypass
Bootimus through 0.1.70 contains a broken access control vulnerability that allows authenticated low-privileged users to perform administrative actions by exploiting missing role enforcement in the JWTMiddleware function in internal/auth/auth.go, which validates JWT tokens and account status but fails to inspect the is_admin flag. Attackers can send requests to any endpoint under the /api/users path to create new administrator accounts or reset administrator passwords, thereby gaining full control of the server and the ability to modify boot menus and installation scripts served to PXE clients.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.7
Bootimus 0.1.70 Broken Access Control via JWTMiddleware Authorization Bypass
Bootimus through 0.1.70 contains a broken access control vulnerability that allows authenticated low-privileged users to perform administrative actions by exploiting missing role enforcement in the JWTMiddleware function in internal/auth/auth.go, which validates JWT tokens and account status but fails to inspect the is_admin flag. Attackers can send requests to any endpoint under the /api/users path to create new administrator accounts or reset administrator passwords, thereby gaining full control of the server and the ability to modify boot menus and installation scripts served to PXE clients.
- Record
CVE-2026-56115- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-862
- Updated
- 2026-11-02
EUVDEUVD-2026-38494
8.7
Bootimus through 0.1.70 contains a broken access control vulnerability that allows authenticated low-privileged users to perform administrative actions by exploiting missing role enforcement in the JWTMiddleware function in internal/auth/auth.go, which validates JWT tokens and account status but fails to inspect the is_admin flag. Attackers can send requests to any endpoint under the /api/users path to create new administrator accounts or reset administrator passwords, thereby gaining full control of the server and the ability to modify boot menus and installation scripts served to PXE clients.
- Record
EUVD-2026-38494- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-vhmp-9f3g-3f36
6.0
dhcpcd through 10.3.2, fixed in commit 2f00c7b, contains a one-byte stack out-of-bounds write...
dhcpcd through 10.3.2, fixed in commit 2f00c7b, contains a one-byte stack out-of-bounds write vulnerability in dhcp6_makemessage() in src/dhcp6.c that allows unauthenticated same-link attackers to write beyond a fixed local buffer by serializing an oversized RFC6603 OPTION_PD_EXCLUDE option body. Attackers can send a crafted DHCPv6 ADVERTISE message containing an IA_PD IAPREFIX /0 with a valid OPTION_PD_EXCLUDE using an exclude prefix length of /121 through /128 to trigger the out-of-bounds write and potentially corrupt adjacent stack memory.
- Record
GHSA-vhmp-9f3g-3f36- CVSS 4.0
- 6.0 Medium
CVSS:4.0/AV:A/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-787, CWE-862
- Updated
- 2026-11-02
NVD
8.7
Bootimus through 0.1.70 contains a broken access control vulnerability that allows authenticated low-privileged users to perform administrative actions by exploiting missing role enforcement in the JWTMiddleware function in internal/auth/auth.go, which validates JWT tokens and account status but fails to inspect the is_admin flag. Attackers can send requests to any endpoint under the /api/users path to create new administrator accounts or reset administrator passwords, thereby gaining full control of the server and the ability to modify boot menus and installation scripts served to PXE clients.
- Record
CVE-2026-56115- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-862
- Updated
- 2026-11-02
OSV
8.7
Bootimus 0.1.70 Broken Access Control via JWTMiddleware Authorization Bypass
Bootimus through 0.1.70 contains a broken access control vulnerability that allows authenticated low-privileged users to perform administrative actions by exploiting missing role enforcement in the JWTMiddleware function in internal/auth/auth.go, which validates JWT tokens and account status but fails to inspect the is_admin flag. Attackers can send requests to any endpoint under the /api/users path to create new administrator accounts or reset administrator passwords, thereby gaining full control of the server and the ability to modify boot menus and installation scripts served to PXE clients.
- Record
CVE-2026-56115- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-862
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-56115
6.0
Bootimus through 0.1.70 contains a broken access control vulnerability that allows authenticated low-privileged users to perform administrative actions by exploiting missing role enforcement in the JWTMiddleware function in internal/auth/auth.go, which validates JWT tokens and account status but fails to inspect the is_admin flag. Attackers can send requests to any endpoint under the /api/users path to create new administrator accounts or reset administrator passwords, thereby gaining full control of the server and the ability to modify boot menus and installation scripts served to PXE clients.
- Record
DEBIAN-CVE-2026-56115- CVSS 4.0
- 6.0 Medium
CVSS:4.0/AV:A/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
Show 5 moreShow less
OSVUBUNTU-CVE-2026-56115
8.7
Bootimus through 0.1.70 contains a broken access control vulnerability that allows authenticated low-privileged users to perform administrative actions by exploiting missing role enforcement in the JWTMiddleware function in internal/auth/auth.go, which validates JWT tokens and account status but fails to inspect the is_admin flag. Attackers can send requests to any endpoint under the /api/users path to create new administrator accounts or reset administrator passwords, thereby gaining full control of the server and the ability to modify boot menus and installation scripts served to PXE clients.
- Record
UBUNTU-CVE-2026-56115- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11473-1 No score
dhcpcd-10.5.0-1.1 on GA media
These are all security issues fixed in the dhcpcd-10.5.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11473-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21692-1 No score
Security update for dhcpcd
This update for dhcpcd fixes the following issues:
Update to 10.5.0.
Security issues fixed:
- CVE-2026-56113: crafted DHCPv6 RENEW reply can lead to a denial of service (bsc#1268980).
- CVE-2026-56115: crafted DHCPv6 ADVERTISE message can cause a one-byte stack out-of-bounds write (bsc#1268976).
- CVE-2026-56116: crafted Router Advertisements containing Route Information options with a zero lifetime can lead to a memory leak (bsc#1268974).
- CVE-2026-56117: crafted privileged command sent over a writable control socket can lead to a heap use-after-free (bsc#1268968).
Changes for dhcpcd:
- 10.5.0:
- Add missing SPDX-License tags
- Format code with clang-format v19
- privsep: Change IPC to use SOCK_STREAM
- BPF: Split OS specific code out into own files and add libpcap support
- hooks: Escape interface names and use printf
- Delete DHCPv6 IA FD from the loop before closing it
- eloop: Use kqueue or epoll to wait for a fd to become ready
- Darwin: Add initial support for macOS
- Import latest pidfile from NetBSD
- BPF: Improve headers
- compat: Add support for getprogname(3)
- route: Rework rt structure so sockaddrs are pointers
- dhcp-common: Escape ifname for lease file
- privsep: smaller buffer size without INET6
- script: add ifxname as the escaped string
- time.h always pulls in struct timespec
- route: Use HAVE_RT_MISSFILTER rather than a generic BSD define
- privsep: Test defines for all ioctls
- if: if_init inits the interface from the kernel
- privsep: Add ps_root_gethostname
- DHCP: Don't really expire the lease when testing
- DHCP: Don't add a trailing : on vendor if no machine arch
- privsep: guard setproctitle and only use compat on linux
- options: Remove some const to fix compile warnings
- privsep: Don't open PF_INET socket for each ioctl
- sun: Enable building for privsep
- script: Use correct buffer length variable
- privsep: Remove PS_BUFLEN
- privsep: Simplify readerror
- timezone: disallow directory traversal
- privsep: ps_root_readfile should return the real file size
- linux: Ensure NLA data boundaries are valid
- options: Fix userclass boundary
- ND6: fix OOB reject mask for an undefined option.
- DHCP6: Ensure IA_PD Prefix Lenth is valid
- ND: Enforce require and reject policy
- ARP: check we have enough to read the frame header
- hooks: Quote assignment of compat vars correctly
- udev: Ensure we have a subsystem, action and ifname
- Fix CI build
- DHCP: Santize messages from servers for output
- ARP: Iterate over states safely as the cb could remove ours
- privsep: Check data is terminated when a string
- auth: clear keys with memset_explicit
- auth: Ensure remaining dlen matches hash digest length
- hooks: don't read past truncated ip6 address starting fe
- ipv6: Only regen temp addrs with sufficent pltime
- eloop: Improve timespecdiff
- eloop: Fix compile warning where UTIME_MAX is a calculation
- vsio: Allow zero length options
- DHCP6: Fix configuring the suffix to delegated prefixes
- IPv6: Fix numerous issues extending temporary address times
- capsicum: Avoid some overflow issues in privsep sysctl
- script: Fix buffer over and under flows in script_buftoenv
- IPv4: uset old_ia when adding an address causes early removal
- dhcp: add configurable backoff parameters for DHCPv4
- options: Introdce policy groups
- Build all the targets on macos
- control: remove unprivileged socket
- DHCP: deconfigure even when state is NULL or NONE
- Record
openSUSE-SU-2026:21692-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:23400-1 No score
Security update for dhcpcd
This update for dhcpcd fixes the following issues:
Update to 10.5.0.
Security issues fixed:
- CVE-2026-56113: crafted DHCPv6 RENEW reply can lead to a denial of service (bsc#1268980).
- CVE-2026-56115: crafted DHCPv6 ADVERTISE message can cause a one-byte stack out-of-bounds write (bsc#1268976).
- CVE-2026-56116: crafted Router Advertisements containing Route Information options with a zero lifetime can lead to a memory leak (bsc#1268974).
- CVE-2026-56117: crafted privileged command sent over a writable control socket can lead to a heap use-after-free (bsc#1268968).
Changes for dhcpcd:
- 10.5.0:
- Add missing SPDX-License tags
- Format code with clang-format v19
- privsep: Change IPC to use SOCK_STREAM
- BPF: Split OS specific code out into own files and add libpcap support
- hooks: Escape interface names and use printf
- Delete DHCPv6 IA FD from the loop before closing it
- eloop: Use kqueue or epoll to wait for a fd to become ready
- Darwin: Add initial support for macOS
- Import latest pidfile from NetBSD
- BPF: Improve headers
- compat: Add support for getprogname(3)
- route: Rework rt structure so sockaddrs are pointers
- dhcp-common: Escape ifname for lease file
- privsep: smaller buffer size without INET6
- script: add ifxname as the escaped string
- time.h always pulls in struct timespec
- route: Use HAVE_RT_MISSFILTER rather than a generic BSD define
- privsep: Test defines for all ioctls
- if: if_init inits the interface from the kernel
- privsep: Add ps_root_gethostname
- DHCP: Don't really expire the lease when testing
- DHCP: Don't add a trailing : on vendor if no machine arch
- privsep: guard setproctitle and only use compat on linux
- options: Remove some const to fix compile warnings
- privsep: Don't open PF_INET socket for each ioctl
- sun: Enable building for privsep
- script: Use correct buffer length variable
- privsep: Remove PS_BUFLEN
- privsep: Simplify readerror
- timezone: disallow directory traversal
- privsep: ps_root_readfile should return the real file size
- linux: Ensure NLA data boundaries are valid
- options: Fix userclass boundary
- ND6: fix OOB reject mask for an undefined option.
- DHCP6: Ensure IA_PD Prefix Lenth is valid
- ND: Enforce require and reject policy
- ARP: check we have enough to read the frame header
- hooks: Quote assignment of compat vars correctly
- udev: Ensure we have a subsystem, action and ifname
- Fix CI build
- DHCP: Santize messages from servers for output
- ARP: Iterate over states safely as the cb could remove ours
- privsep: Check data is terminated when a string
- auth: clear keys with memset_explicit
- auth: Ensure remaining dlen matches hash digest length
- hooks: don't read past truncated ip6 address starting fe
- ipv6: Only regen temp addrs with sufficent pltime
- eloop: Improve timespecdiff
- eloop: Fix compile warning where UTIME_MAX is a calculation
- vsio: Allow zero length options
- DHCP6: Fix configuring the suffix to delegated prefixes
- IPv6: Fix numerous issues extending temporary address times
- capsicum: Avoid some overflow issues in privsep sysctl
- script: Fix buffer over and under flows in script_buftoenv
- IPv4: uset old_ia when adding an address causes early removal
- dhcp: add configurable backoff parameters for DHCPv4
- options: Introdce policy groups
- Build all the targets on macos
- control: remove unprivileged socket
- DHCP: deconfigure even when state is NULL or NONE
- Record
SUSE-SU-2026:23400-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:23562-1 No score
Security update for dhcpcd
This update for dhcpcd fixes the following issues:
Update to 10.5.0.
Security issues fixed:
- CVE-2026-56113: crafted DHCPv6 RENEW reply can lead to a denial of service (bsc#1268980).
- CVE-2026-56115: crafted DHCPv6 ADVERTISE message can cause a one-byte stack out-of-bounds write (bsc#1268976).
- CVE-2026-56116: crafted Router Advertisements containing Route Information options with a zero lifetime can lead to a memory leak (bsc#1268974).
- CVE-2026-56117: crafted privileged command sent over a writable control socket can lead to a heap use-after-free (bsc#1268968).
Changes for dhcpcd:
- 10.5.0:
- Add missing SPDX-License tags
- Format code with clang-format v19
- privsep: Change IPC to use SOCK_STREAM
- BPF: Split OS specific code out into own files and add libpcap support
- hooks: Escape interface names and use printf
- Delete DHCPv6 IA FD from the loop before closing it
- eloop: Use kqueue or epoll to wait for a fd to become ready
- Darwin: Add initial support for macOS
- Import latest pidfile from NetBSD
- BPF: Improve headers
- compat: Add support for getprogname(3)
- route: Rework rt structure so sockaddrs are pointers
- dhcp-common: Escape ifname for lease file
- privsep: smaller buffer size without INET6
- script: add ifxname as the escaped string
- time.h always pulls in struct timespec
- route: Use HAVE_RT_MISSFILTER rather than a generic BSD define
- privsep: Test defines for all ioctls
- if: if_init inits the interface from the kernel
- privsep: Add ps_root_gethostname
- DHCP: Don't really expire the lease when testing
- DHCP: Don't add a trailing : on vendor if no machine arch
- privsep: guard setproctitle and only use compat on linux
- options: Remove some const to fix compile warnings
- privsep: Don't open PF_INET socket for each ioctl
- sun: Enable building for privsep
- script: Use correct buffer length variable
- privsep: Remove PS_BUFLEN
- privsep: Simplify readerror
- timezone: disallow directory traversal
- privsep: ps_root_readfile should return the real file size
- linux: Ensure NLA data boundaries are valid
- options: Fix userclass boundary
- ND6: fix OOB reject mask for an undefined option.
- DHCP6: Ensure IA_PD Prefix Lenth is valid
- ND: Enforce require and reject policy
- ARP: check we have enough to read the frame header
- hooks: Quote assignment of compat vars correctly
- udev: Ensure we have a subsystem, action and ifname
- Fix CI build
- DHCP: Santize messages from servers for output
- ARP: Iterate over states safely as the cb could remove ours
- privsep: Check data is terminated when a string
- auth: clear keys with memset_explicit
- auth: Ensure remaining dlen matches hash digest length
- hooks: don't read past truncated ip6 address starting fe
- ipv6: Only regen temp addrs with sufficent pltime
- eloop: Improve timespecdiff
- eloop: Fix compile warning where UTIME_MAX is a calculation
- vsio: Allow zero length options
- DHCP6: Fix configuring the suffix to delegated prefixes
- IPv6: Fix numerous issues extending temporary address times
- capsicum: Avoid some overflow issues in privsep sysctl
- script: Fix buffer over and under flows in script_buftoenv
- IPv4: uset old_ia when adding an address causes early removal
- dhcp: add configurable backoff parameters for DHCPv4
- options: Introdce policy groups
- Build all the targets on macos
- control: remove unprivileged socket
- DHCP: deconfigure even when state is NULL or NONE
- Record
SUSE-SU-2026:23562-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
dhcpcdSUSE:Linux Micro 6.2 From an advisory covering 4 CVEs |
before 10.5.0-160000.1.1 | 10.5.0-160000.1.1 |
dhcpcdSUSE:Linux Enterprise Server 16.0 From an advisory covering 4 CVEs |
before 10.5.0-160000.1.1 | 10.5.0-160000.1.1 |
dhcpcdSUSE:Linux Enterprise Server for SAP applications 16.0 From an advisory covering 4 CVEs |
before 10.5.0-160000.1.1 | 10.5.0-160000.1.1 |
dhcpcdUbuntu:25.10 |
All versions, plus listed versions 1:10.1.0-81:10.1.0-101:10.1.0-111:10.1.0-121:10.2.4-31:10.2.4-4 |
None known |
dhcpcdopenSUSE:Tumbleweed From an advisory covering 4 CVEs |
before 10.5.0-1.1 | 10.5.0-1.1 |
dhcpcdopenSUSE:Leap 16.0 From an advisory covering 4 CVEs |
before 10.5.0-160000.1.1 | 10.5.0-160000.1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected | ||
| aliases, published | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-56115 is a high vulnerability (CVSS 8.7) in Bootimus, published June 23, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.45%, the 39th percentile. No source names a fixed version.
References
github.com/garybowers/bootimus/issues/84
vulncheck.com/advisories/bootimus-broken-access-control-via-jwtmiddleware-authorization-bypass
nvd.nist.gov/vuln/detail/CVE-2026-56115
github.com/NetworkConfiguration/dhcpcd/commit/2f00c7bfc408b6582d331932dfa47829c4819029
vulncheck.com/advisories/dhcpcd-stack-out-of-bounds-write-in-dhcp6-makemessage
github.com/advisories/GHSA-vhmp-9f3g-3f36
Show 15 moreShow less
github.com/CVEProject/cvelistV5/tree/main/cves/2026/56xxx/CVE-2026-56115.json
github.com/garybowers/bootimus
security-tracker.debian.org/tracker/CVE-2026-56115
suse.com/support/update/announcement/2026/suse-su-202623400-1
bugzilla.suse.com/1268968
bugzilla.suse.com/1268974
bugzilla.suse.com/1268976
bugzilla.suse.com/1268980
suse.com/security/cve/CVE-2026-56113
suse.com/security/cve/CVE-2026-56115
suse.com/security/cve/CVE-2026-56116
suse.com/security/cve/CVE-2026-56117
suse.com/support/update/announcement/2026/suse-su-202623562-1
ubuntu.com/security/CVE-2026-56115
cve.org/CVERecord?id=CVE-2026-56115