🚨 CVE-2026-86666
A security flaw has been discovered in aircheng-org iWebShop-5 up to 5.15. Impacted is the function upload_json/uploadFile of the file controllers/pic.php. The manipulation results in unrestricted upload. The attack can be executed remotely. The exploit has been released to the public and may be used for attacks. The project was informed of the problem early through an issue report but has not responded yet.
🎖@cveNotify
A security flaw has been discovered in aircheng-org iWebShop-5 up to 5.15. Impacted is the function upload_json/uploadFile of the file controllers/pic.php. The manipulation results in unrestricted upload. The attack can be executed remotely. The exploit has been released to the public and may be used for attacks. The project was informed of the problem early through an issue report but has not responded yet.
🎖@cveNotify
GitHub
GitHub - aircheng-org/iWebShop-5: iWebShop是一款基于PHP语言及MYSQL数据库开发的B2B2C多用户商城系统,支持自营和多商家入驻、集成微信商城、手机商城、移动端APP商城、三级分销、电商直播、微信小程序,它…
iWebShop是一款基于PHP语言及MYSQL数据库开发的B2B2C多用户商城系统,支持自营和多商家入驻、集成微信商城、手机商城、移动端APP商城、三级分销、电商直播、微信小程序,它可以承载大数据量且性能优良,代码支持二次开发是电商建站首选。 - aircheng-org/iWebShop-5
🚨 CVE-2026-86718
WWBN AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 contains a cross-site request forgery vulnerability in deleteHistory.json.php and finishAll.json.php that allows unauthenticated attackers to mutate live history by making GET requests without CSRF token validation. Attackers can craft malicious pages that trigger administrator browsers to delete all live transmission history or mark streams as finished when an admin visits the attacker-controlled site.
🎖@cveNotify
WWBN AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 contains a cross-site request forgery vulnerability in deleteHistory.json.php and finishAll.json.php that allows unauthenticated attackers to mutate live history by making GET requests without CSRF token validation. Attackers can craft malicious pages that trigger administrator browsers to delete all live transmission history or mark streams as finished when an admin visits the attacker-controlled site.
🎖@cveNotify
GitHub
GET-reachable CSRF on Live deleteHistory.json.php and finishAll.json.php wipes or finishes all live history
## Summary
`plugin/Live/view/deleteHistory.json.php` and `plugin/Live/view/finishAll.json.php` mutate global live state on GET. The only check is `User::isAdmin()`. There is no CSRF token and no P...
`plugin/Live/view/deleteHistory.json.php` and `plugin/Live/view/finishAll.json.php` mutate global live state on GET. The only check is `User::isAdmin()`. There is no CSRF token and no P...
🚨 CVE-2026-86719
WWBN AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 (master) contains a cross-site request forgery vulnerability in the CustomizeUser plugin endpoint plugin/CustomizeUser/swapUser.json.php. The endpoint takes users_id from $_REQUEST and invokes User::swapUser() without calling forbidIfNotPost() or forbidIfInvalidToken(), and the global autoCSRFGuard() check only runs for POST requests to *.json.php, so the action is reachable via GET. An attacker who causes an authenticated administrator's browser to issue a cross-origin GET (for example via an <img> tag or link) can replace that administrator's session with a non-admin user account, causing the administrator to lose administrative access until the swap is cancelled; swapping to another administrator account is rejected, so this is not privilege escalation. The JSON response also discloses the session_id. The CustomizeUser plugin is enabled by default, and no patch was available at the time of publication.
🎖@cveNotify
WWBN AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 (master) contains a cross-site request forgery vulnerability in the CustomizeUser plugin endpoint plugin/CustomizeUser/swapUser.json.php. The endpoint takes users_id from $_REQUEST and invokes User::swapUser() without calling forbidIfNotPost() or forbidIfInvalidToken(), and the global autoCSRFGuard() check only runs for POST requests to *.json.php, so the action is reachable via GET. An attacker who causes an authenticated administrator's browser to issue a cross-origin GET (for example via an <img> tag or link) can replace that administrator's session with a non-admin user account, causing the administrator to lose administrative access until the swap is cancelled; swapping to another administrator account is rejected, so this is not privilege escalation. The JSON response also discloses the session_id. The CustomizeUser plugin is enabled by default, and no patch was available at the time of publication.
🎖@cveNotify
GitHub
GET-reachable CSRF on CustomizeUser swapUser.json.php hijacks an admin session into a target account
## Summary
`plugin/CustomizeUser/swapUser.json.php` reads `$_REQUEST['users_id']` and calls `User::swapUser()` with no `forbidIfNotPost()` and no `forbidIfInvalidToken()`. A GET from anoth...
`plugin/CustomizeUser/swapUser.json.php` reads `$_REQUEST['users_id']` and calls `User::swapUser()` with no `forbidIfNotPost()` and no `forbidIfInvalidToken()`. A GET from anoth...
🚨 CVE-2026-86720
WWBN AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 fails to validate ownership of live_restreams_id in resendRestreamer.json.php, allowing authenticated users with canStream to access other users' restream destinations. Attackers can broadcast their live stream to victim-configured restream destinations by supplying arbitrary live_restreams_id values, hijacking YouTube, Facebook, or Twitch streams using victim stream keys.
🎖@cveNotify
WWBN AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 fails to validate ownership of live_restreams_id in resendRestreamer.json.php, allowing authenticated users with canStream to access other users' restream destinations. Attackers can broadcast their live stream to victim-configured restream destinations by supplying arbitrary live_restreams_id values, hijacking YouTube, Facebook, or Twitch streams using victim stream keys.
🎖@cveNotify
GitHub
Missing authorization: Live resendRestreamer.json.php uses another user's live_restreams_id / stream key
## Summary
`plugin/Live/view/Live_restreams/resendRestreamer.json.php` checks ownership of `live_transmitions_history_id` and does not check ownership of `live_restreams_id`. A user with `canStrea...
`plugin/Live/view/Live_restreams/resendRestreamer.json.php` checks ownership of `live_transmitions_history_id` and does not check ownership of `live_restreams_id`. A user with `canStrea...
🚨 CVE-2026-86721
AVideo through commit c3edcc274c contains an authorization bypass vulnerability where a session cookie named 'key' with value 'value' overrides the $_REQUEST['key'] parameter in saveLive.php and related endpoints. Attackers can publish to any user's RTMP stream without authentication by using the known constant stream key value to hijack live broadcasts.
🎖@cveNotify
AVideo through commit c3edcc274c contains an authorization bypass vulnerability where a session cookie named 'key' with value 'value' overrides the $_REQUEST['key'] parameter in saveLive.php and related endpoints. Attackers can publish to any user's RTMP stream without authentication by using the known constant stream key value to hijack live broadcasts.
🎖@cveNotify
GitHub
Authorization bypass: session cookie named `key` overrides `$_REQUEST['key']` in `saveLive.php`, setting all live stream keys to…
## Summary
`session_start_preload` in `objects/functionsPHP.php:592` sets a cookie named `key` with the literal value `value` for every session. PHP's `variables_order=EGPCS` makes `$_COOKIE` ...
`session_start_preload` in `objects/functionsPHP.php:592` sets a cookie named `key` with the literal value `value` for every session. PHP's `variables_order=EGPCS` makes `$_COOKIE` ...
🚨 CVE-2026-86722
AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 contains an authentication bypass vulnerability where sqlDAL caches empty result sets that writeSql never invalidates. Attackers with a valid password can bypass email two-factor authentication on new devices because the confirmation code hash fails to generate from the stale cached empty result.
🎖@cveNotify
AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 contains an authentication bypass vulnerability where sqlDAL caches empty result sets that writeSql never invalidates. Attackers with a valid password can bypass email two-factor authentication on new devices because the confirmation code hash fails to generate from the stale cached empty result.
🎖@cveNotify
GitHub
Improper authentication: `sqlDAL::readSql` caches an empty result set that `writeSql` never invalidates, so LoginControl email…
## Summary
`sqlDAL::readSql` stores every result set it produces, including an empty one, in the request-scoped `$readSqlCached` keyed by the statement and its bound values (`objects/mysql_dal.php...
`sqlDAL::readSql` stores every result set it produces, including an empty one, in the request-scoped `$readSqlCached` keyed by the statement and its bound values (`objects/mysql_dal.php...
🚨 CVE-2026-86723
AVideo through c3edcc274c389816d434acadac07ee78eaf330c1 contains an authentication bypass vulnerability in LoginControl::verifyChallenge() that uses loose comparison (==) instead of strict comparison (===) against unset session values. Attackers with only a password can submit an empty request to verifyChallenge.json.php to bypass PGP two-factor authentication and gain full authenticated access.
🎖@cveNotify
AVideo through c3edcc274c389816d434acadac07ee78eaf330c1 contains an authentication bypass vulnerability in LoginControl::verifyChallenge() that uses loose comparison (==) instead of strict comparison (===) against unset session values. Attackers with only a password can submit an empty request to verifyChallenge.json.php to bypass PGP two-factor authentication and gain full authenticated access.
🎖@cveNotify
GitHub
Improper authentication: `LoginControl::verifyChallenge()` compares with `==`, so an omitted `response` against an unset session…
## Summary
`LoginControl::verifyChallenge($response)` tests `$response == $_SESSION['user']['challenge']['text']` (`plugin/LoginControl/LoginControl.php:534`). When the ses...
`LoginControl::verifyChallenge($response)` tests `$response == $_SESSION['user']['challenge']['text']` (`plugin/LoginControl/LoginControl.php:534`). When the ses...
🚨 CVE-2026-86724
AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 contains a cross-site request forgery vulnerability in plugin/YPTWallet/view/saveBalance.php that allows attackers to set arbitrary wallet balances by relying only on session cookies without token validation. Attackers can craft a malicious webpage that, when loaded by an administrator, submits a POST request to modify any user's wallet balance to any value.
🎖@cveNotify
AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 contains a cross-site request forgery vulnerability in plugin/YPTWallet/view/saveBalance.php that allows attackers to set arbitrary wallet balances by relying only on session cookies without token validation. Attackers can craft a malicious webpage that, when loaded by an administrator, submits a POST request to modify any user's wallet balance to any value.
🎖@cveNotify
GitHub
CSRF: `plugin/YPTWallet/view/saveBalance.php` sets any user's wallet balance with no authenticity check, and does not match the…
## Summary
`plugin/YPTWallet/view/saveBalance.php` writes an arbitrary wallet balance for an arbitrary `users_id` on the strength of the ambient session cookie. The only guard in the file is `User...
`plugin/YPTWallet/view/saveBalance.php` writes an arbitrary wallet balance for an arbitrary `users_id` on the strength of the ambient session cookie. The only guard in the file is `User...
🚨 CVE-2026-86725
AVideo through c3edcc274c389816d434acadac07ee78eaf330c1 contains a missing authorization vulnerability in the SocialMediaPublisher plugin's add.json.php endpoint that allows authenticated users to modify other users' OAuth token records. Attackers can supply arbitrary row IDs to overwrite another user's stored access_token and refresh_token, then delete the compromised record to destroy the victim's provider linkage.
🎖@cveNotify
AVideo through c3edcc274c389816d434acadac07ee78eaf330c1 contains a missing authorization vulnerability in the SocialMediaPublisher plugin's add.json.php endpoint that allows authenticated users to modify other users' OAuth token records. Attackers can supply arbitrary row IDs to overwrite another user's stored access_token and refresh_token, then delete the compromised record to destroy the victim's provider linkage.
🎖@cveNotify
GitHub
Missing authorization: SocialMediaPublisher `Publisher_user_preferences/add.json.php` loads any row by `id` and reassigns it to…
## Summary
`plugin/SocialMediaPublisher/View/Publisher_user_preferences/add.json.php` builds its row from an attacker-supplied primary key, `new Publisher_user_preferences(@$_POST['id'])`,...
`plugin/SocialMediaPublisher/View/Publisher_user_preferences/add.json.php` builds its row from an attacker-supplied primary key, `new Publisher_user_preferences(@$_POST['id'])`,...
🚨 CVE-2026-86726
AVideo through 29.0 contains an information disclosure vulnerability in restreamsActive.json.php that allows authenticated streamers to enumerate source stream keys and identities of all other streamers' active restreams. The endpoint fails to filter results by user ownership, exposing sensitive transmission credentials and streamer identity across all accounts to any user with streaming capability.
🎖@cveNotify
AVideo through 29.0 contains an information disclosure vulnerability in restreamsActive.json.php that allows authenticated streamers to enumerate source stream keys and identities of all other streamers' active restreams. The endpoint fails to filter results by user ownership, exposing sensitive transmission credentials and streamer identity across all accounts to any user with streaming capability.
🎖@cveNotify
GitHub
Cross-user active-restream source stream-key and identity disclosure in restreamsActive.json.php
## Summary
`plugin/Live/view/restreamsActive.json.php` is gated on a capability (`canStream()||isAdmin()`), not ownership, and returns every active ffmpeg restream's source stream `key` plus st...
`plugin/Live/view/restreamsActive.json.php` is gated on a capability (`canStream()||isAdmin()`), not ownership, and returns every active ffmpeg restream's source stream `key` plus st...
🚨 CVE-2026-86727
AVideo through 29.0 contains an information disclosure vulnerability in plugin/Live/stats.json.php that allows unauthenticated attackers to retrieve stream keys and m3u8 URLs by accessing the endpoint without authentication. Attackers can enumerate private, unlisted, and group-restricted live streams by parsing the hidden_applications array in the JSON response to obtain sensitive streaming credentials.
🎖@cveNotify
AVideo through 29.0 contains an information disclosure vulnerability in plugin/Live/stats.json.php that allows unauthenticated attackers to retrieve stream keys and m3u8 URLs by accessing the endpoint without authentication. Attackers can enumerate private, unlisted, and group-restricted live streams by parsing the hidden_applications array in the JSON response to obtain sensitive streaming credentials.
🎖@cveNotify
GitHub
Unauthenticated private/unlisted live-stream key and m3u8 disclosure in plugin/Live/stats.json.php
## Summary
`plugin/Live/stats.json.php` is unauthenticated (gated only on the Live plugin being enabled) and echoes a stats structure whose `hidden_applications[]` bucket retains the raw stream `ke...
`plugin/Live/stats.json.php` is unauthenticated (gated only on the Live plugin being enabled) and echoes a stats structure whose `hidden_applications[]` bucket retains the raw stream `ke...
🚨 CVE-2026-86728
AVideo through 29.0 contains an authentication bypass vulnerability in plugin/PlayLists/epg.json.php that exposes live-stream keys and private EPG schedules to unauthenticated users. Attackers can request the endpoint with sequential user or playlist IDs to retrieve sensitive credentials, server identifiers, and complete programme schedules without authentication.
🎖@cveNotify
AVideo through 29.0 contains an authentication bypass vulnerability in plugin/PlayLists/epg.json.php that exposes live-stream keys and private EPG schedules to unauthenticated users. Attackers can request the endpoint with sequential user or playlist IDs to retrieve sensitive credentials, server identifiers, and complete programme schedules without authentication.
🎖@cveNotify
GitHub
Unauthenticated live-stream key and private EPG schedule disclosure in plugin/PlayLists/epg.json.php
## Summary
`plugin/PlayLists/epg.json.php` performs zero authentication and serializes the EPG object — which carries the live-transmission `key` (a credential owner/admin-gated everywhere else in ...
`plugin/PlayLists/epg.json.php` performs zero authentication and serializes the EPG object — which carries the live-transmission `key` (a credential owner/admin-gated everywhere else in ...
🚨 CVE-2026-86729
WWBN AVideo through commit e01e41ecc (no patched version available) exposes get_api_preauthorize in plugin/API/API.php as a second, undocumented login path. Unlike get_api_signIn, which enforces a rate limit of 10 attempts per 5 minutes via checkRateLimit(), get_api_preauthorize performs the same credential check with no throttling for any client, allowing unlimited remote password guessing against arbitrary accounts, including admin. The endpoint also acts as a credential oracle: it returns the message "Invalid credentials" for both correct and incorrect passwords, while the users_id field in the response body discloses the authenticated identity (users_id:1 on success, users_id:0 on failure), and a correct password establishes a session cookie that remains usable for authenticated API requests. Together these issues permit unauthenticated brute-force account takeover.
🎖@cveNotify
WWBN AVideo through commit e01e41ecc (no patched version available) exposes get_api_preauthorize in plugin/API/API.php as a second, undocumented login path. Unlike get_api_signIn, which enforces a rate limit of 10 attempts per 5 minutes via checkRateLimit(), get_api_preauthorize performs the same credential check with no throttling for any client, allowing unlimited remote password guessing against arbitrary accounts, including admin. The endpoint also acts as a credential oracle: it returns the message "Invalid credentials" for both correct and incorrect passwords, while the users_id field in the response body discloses the authenticated identity (users_id:1 on success, users_id:0 on failure), and a correct password establishes a session cookie that remains usable for authenticated API requests. Together these issues permit unauthenticated brute-force account takeover.
🎖@cveNotify
GitHub
Improper Restriction of Excessive Authentication Attempts: get_api_preauthorize is a second login path with no rate limit, and…
### Summary
`get_api_preauthorize` is a second, unadvertised login path. It accepts a username and password, establishes an authenticated session on success, and unlike `get_api_signIn` carries ...
`get_api_preauthorize` is a second, unadvertised login path. It accepts a username and password, establishes an authenticated session on success, and unlike `get_api_signIn` carries ...
🚨 CVE-2026-86730
Craft CMS versions before 5.10.12 fail to properly cleanse string-typed field-layout elements, allowing authenticated control-panel users to inject Yii2 behavior attachments and event handlers. Attackers can post field-layout tab elements as JSON strings to bypass cleanse validation, then trigger arbitrary object instantiation and code execution through Craft::createObject().
🎖@cveNotify
Craft CMS versions before 5.10.12 fail to properly cleanse string-typed field-layout elements, allowing authenticated control-panel users to inject Yii2 behavior attachments and event handlers. Attackers can post field-layout tab elements as JSON strings to bypass cleanse validation, then trigger arbitrary object instantiation and code execution through Craft::createObject().
🎖@cveNotify
GitHub
string-typed field-layout elements evade array-only cleanse, enabling behavior-injection RCE
Craft CMS control-panel field-layout hydration applies `Component::cleanseConfig()` to strip Yii2 configuration keys (`as <name>` behavior attachments, on `<event>` handler registration...
🚨 CVE-2026-86732
Craft CMS versions before 5.10.12 contain a remote code execution vulnerability in the element-index endpoint that allows authenticated content editors to instantiate arbitrary classes through the criteria parameter. Attackers can inject a malicious class via criteria[withTransforms][0][class] that reaches ImageTransforms::normalizeTransform(), then use a PHP gadget chain with yii\rbac\PhpManager to execute code by pointing itemFile to a request log containing PHP payload in the User-Agent header.
🎖@cveNotify
Craft CMS versions before 5.10.12 contain a remote code execution vulnerability in the element-index endpoint that allows authenticated content editors to instantiate arbitrary classes through the criteria parameter. Attackers can inject a malicious class via criteria[withTransforms][0][class] that reaches ImageTransforms::normalizeTransform(), then use a PHP gadget chain with yii\rbac\PhpManager to execute code by pointing itemFile to a request log containing PHP payload in the User-Agent header.
🎖@cveNotify
GitHub
Remote Code Execution by non-admin authenticated user
Craft’s fix for CVE-2025-32432 closed one way into a dangerous function but left the function itself untouched, and it is reachable through another route. On the current release, a logged-in conten...
🚨 CVE-2026-86733
Snipe-IT before 8.7.0 streams the SQL entry from an uploaded backup archive directly into the MySQL/MariaDB command-line client (`mysql`) without the --binary-mode flag, so the client interprets lines beginning with backslash commands such as `\!` as local shell commands. An authenticated superadministrator who uploads a crafted ZIP backup (POST /admin/backups/upload) and triggers a restore (POST /admin/backups/restore/{filename}) without the optional `clean` sanitizer parameter — which is not applied by default because DB_SANITIZE_BY_DEFAULT is false — can execute arbitrary OS commands as the web application's operating-system user, exposing application secrets (including database credentials and APP_KEY) and allowing modification of application-writable files and data. Version 8.7.0 adds the --binary-mode flag to the client invocation.
🎖@cveNotify
Snipe-IT before 8.7.0 streams the SQL entry from an uploaded backup archive directly into the MySQL/MariaDB command-line client (`mysql`) without the --binary-mode flag, so the client interprets lines beginning with backslash commands such as `\!` as local shell commands. An authenticated superadministrator who uploads a crafted ZIP backup (POST /admin/backups/upload) and triggers a restore (POST /admin/backups/restore/{filename}) without the optional `clean` sanitizer parameter — which is not applied by default because DB_SANITIZE_BY_DEFAULT is false — can execute arbitrary OS commands as the web application's operating-system user, exposing application secrets (including database credentials and APP_KEY) and allowing modification of application-writable files and data. Version 8.7.0 adds the --binary-mode flag to the client invocation.
🎖@cveNotify
GitHub
Authenticated remote code execution through MariaDB client commands in backup restore
Snipe-IT versions prior to 8.7.0 streamed the SQL entry from an uploaded backup archive directly into the MySQL / MariaDB command-line client without the `--binary-mode` flag. The client interprets...
🚨 CVE-2026-86734
Snipe-IT before 8.7.1 fails to validate the length of the note field in the POST /account/accept/{acceptance} endpoint, allowing authenticated users to submit unbounded input that reaches synchronous CommonMark rendering. Attackers can submit large note values to exhaust PHP worker CPU and cause denial of service through resource exhaustion in the markdown parsing pipeline.
🎖@cveNotify
Snipe-IT before 8.7.1 fails to validate the length of the note field in the POST /account/accept/{acceptance} endpoint, allowing authenticated users to submit unbounded input that reaches synchronous CommonMark rendering. Attackers can submit large note values to exhaust PHP worker CPU and cause denial of service through resource exhaustion in the markdown parsing pipeline.
🎖@cveNotify
GitHub
Fixed FD-56927 - upgraded commonmark, added max to comments · grokability/snipe-it@66770cf
A free open source IT asset/license management system - Fixed FD-56927 - upgraded commonmark, added max to comments · grokability/snipe-it@66770cf
🚨 CVE-2026-86735
snipe-it versions before 8.7.0 contain a server-side request forgery vulnerability in the ExternalUrl validation rule that fails to detect IPv6 transition addresses encoding private IPv4 targets. Attackers with super-admin privileges can configure webhook URLs using NAT64, 6to4, or Teredo transition addresses to bypass SSRF guards and access internal services or cloud metadata endpoints.
🎖@cveNotify
snipe-it versions before 8.7.0 contain a server-side request forgery vulnerability in the ExternalUrl validation rule that fails to detect IPv6 transition addresses encoding private IPv4 targets. Attackers with super-admin privileges can configure webhook URLs using NAT64, 6to4, or Teredo transition addresses to bypass SSRF guards and access internal services or cloud metadata endpoints.
🎖@cveNotify
GitHub
IPv6 transition address bypass of webhook URL SSRF guard
# IPv6 transition address bypass of webhook URL SSRF guard
## Summary
The `ExternalUrl` validation rule in `app/Rules/ExternalUrl.php` prevents webhook URLs from targeting private/internal ad...
## Summary
The `ExternalUrl` validation rule in `app/Rules/ExternalUrl.php` prevents webhook URLs from targeting private/internal ad...
🚨 CVE-2026-86736
snipe-it before 8.7.0 contains an incorrect calculation vulnerability in checkout request handling that allows authenticated users to corrupt the assets.requests_counter through duplicate submissions and cancellations without active requests. Attackers can repeatedly call cancel endpoints without active requests to drive the counter negative, or submit duplicate checkout requests to inflate the counter, misrepresenting pending demand in the admin queue.
🎖@cveNotify
snipe-it before 8.7.0 contains an incorrect calculation vulnerability in checkout request handling that allows authenticated users to corrupt the assets.requests_counter through duplicate submissions and cancellations without active requests. Attackers can repeatedly call cancel endpoints without active requests to drive the counter negative, or submit duplicate checkout requests to inflate the counter, misrepresenting pending demand in the admin queue.
🎖@cveNotify
GitHub
Checkout Requests and Cancellations - duplicate submissions increment more than once
## Summary
Two paths on the checkout-request endpoints corrupt `assets.requests_counter`: cancels with no active request decrement anyway, and duplicate submissions increment more than once.
...
Two paths on the checkout-request endpoints corrupt `assets.requests_counter`: cancels with no active request decrement anyway, and duplicate submissions increment more than once.
...
🚨 CVE-2026-86737
snipe-it versions before 8.7.0 fail to enforce asset view authorization in the GET /hardware/{asset}/barcode endpoint. Authenticated attackers can iterate asset IDs to retrieve barcodes and enumerate asset tags across tenants, including soft-deleted and cross-company assets.
🎖@cveNotify
snipe-it versions before 8.7.0 fail to enforce asset view authorization in the GET /hardware/{asset}/barcode endpoint. Authenticated attackers can iterate asset IDs to retrieve barcodes and enumerate asset tags across tenants, including soft-deleted and cross-company assets.
🎖@cveNotify
GitHub
`GET /hardware/{asset}/barcode` renders any asset's barcode PNG for any authenticated user regardless of `assets.view` or FMCS…
## Summary
`AssetsController::getBarCode` fetched the asset via `Asset::withTrashed()->find($assetId)` and generated the PNG without invoking the asset view policy. Sibling routes on the same...
`AssetsController::getBarCode` fetched the asset via `Asset::withTrashed()->find($assetId)` and generated the PNG without invoking the asset view policy. Sibling routes on the same...
🚨 CVE-2026-86738
Snipe-IT versions before 8.7.0 contain a CSS injection vulnerability in the Custom CSS field due to incomplete sanitization that reverses HTML encoding on greater-than and double-quote characters. Superusers can plant malicious CSS payloads using @import and url() references to exfiltrate CSRF tokens from other superusers via attribute-selector rules, enabling account takeover.
🎖@cveNotify
Snipe-IT versions before 8.7.0 contain a CSS injection vulnerability in the Custom CSS field due to incomplete sanitization that reverses HTML encoding on greater-than and double-quote characters. Superusers can plant malicious CSS payloads using @import and url() references to exfiltrate CSRF tokens from other superusers via attribute-selector rules, enabling account takeover.
🎖@cveNotify
GitHub
Fixed FD-56789 -sanitizing custom CSS · grokability/snipe-it@d26d716
A free open source IT asset/license management system - Fixed FD-56789 -sanitizing custom CSS · grokability/snipe-it@d26d716