π¨ CVE-2026-74903
SiYuan before v3.7.4 contains an insufficient access control vulnerability in the /api/lute/spinBlockDOM endpoint, which is guarded only by CheckAuth middleware instead of CheckAdminRole like its sibling endpoint. Authenticated users with RoleEditor or RoleReader roles can invoke the endpoint to transform arbitrary DOM input, and large payloads cause endpoint starvation through per-path mutex serialization.
π@cveNotify
SiYuan before v3.7.4 contains an insufficient access control vulnerability in the /api/lute/spinBlockDOM endpoint, which is guarded only by CheckAuth middleware instead of CheckAdminRole like its sibling endpoint. Authenticated users with RoleEditor or RoleReader roles can invoke the endpoint to transform arbitrary DOM input, and large payloads cause endpoint starvation through per-path mutex serialization.
π@cveNotify
GitHub
/api/lute/spinBlockDOM Accessible to All Authenticated Roles Without Admin Gate or Input Size Limit
## Summary
The `/api/lute/spinBlockDOM` endpoint is registered with only `model.CheckAuth` middleware, making it accessible to any authenticated role including `RoleEditor` and `RoleReader`. It...
The `/api/lute/spinBlockDOM` endpoint is registered with only `model.CheckAuth` middleware, making it accessible to any authenticated role including `RoleEditor` and `RoleReader`. It...
π¨ CVE-2026-74904
SiYuan before v3.7.4 is missing authorization checks in 17 block metadata/content endpoints in kernel/api/block.go (including getRefText, checkBlockExist, and getBlockBreadcrumb). These handlers are gated only by basic authentication (model.CheckAuth) and lack publish-access filtering, allowing anonymous publish-mode readers to disclose private block content-derived text, structural metadata, and existence information for arbitrary block IDs across the workspace.
π@cveNotify
SiYuan before v3.7.4 is missing authorization checks in 17 block metadata/content endpoints in kernel/api/block.go (including getRefText, checkBlockExist, and getBlockBreadcrumb). These handlers are gated only by basic authentication (model.CheckAuth) and lack publish-access filtering, allowing anonymous publish-mode readers to disclose private block content-derived text, structural metadata, and existence information for arbitrary block IDs across the workspace.
π@cveNotify
GitHub
17 block metadata/content endpoints in kernel/api/block.go (getRefText, getBlockBreadcrumb, checkBlockExist, and 14 others) haveβ¦
Same CWE-862 family, found via an automated bulk sweep of every
`/api/block/*` handler in `kernel/api/block.go` for the presence of any
access-check reference (`IsReadOnlyRoleContext`, `checkBloc...
`/api/block/*` handler in `kernel/api/block.go` for the presence of any
access-check reference (`IsReadOnlyRoleContext`, `checkBloc...
π¨ CVE-2026-74905
SiYuan before v3.7.4 contains a server-side request forgery (SSRF) vulnerability in the isPrivateIP function in kernel/util/net.go, used by SSRFSafeDialer to enforce SSRF protection in SafeMode. The function only checks for loopback, link-local unicast, private, and unspecified addresses and does not recognize IPv6 transition addresses (NAT64 64:ff9b::/96, 6to4 2002::/16, Teredo 2001::/32) that embed private IPv4 destinations. When SafeMode is enabled, an authenticated attacker can bypass the SSRF guard via the network forward proxy, WebSocket proxy, or SSE proxy endpoints by supplying a URL whose hostname resolves to such a transition address, reaching internal services and cloud metadata endpoints (e.g., 169.254.169.254). Because the forward proxy returns the full response body, this is a full-read SSRF that can be used to steal instance credentials, reach internal services, and port-scan internal infrastructure.
π@cveNotify
SiYuan before v3.7.4 contains a server-side request forgery (SSRF) vulnerability in the isPrivateIP function in kernel/util/net.go, used by SSRFSafeDialer to enforce SSRF protection in SafeMode. The function only checks for loopback, link-local unicast, private, and unspecified addresses and does not recognize IPv6 transition addresses (NAT64 64:ff9b::/96, 6to4 2002::/16, Teredo 2001::/32) that embed private IPv4 destinations. When SafeMode is enabled, an authenticated attacker can bypass the SSRF guard via the network forward proxy, WebSocket proxy, or SSE proxy endpoints by supplying a URL whose hostname resolves to such a transition address, reaching internal services and cloud metadata endpoints (e.g., 169.254.169.254). Because the forward proxy returns the full response body, this is a full-read SSRF that can be used to steal instance credentials, reach internal services, and port-scan internal infrastructure.
π@cveNotify
GitHub
SSRF via IPv6 Transition Address Bypass of SSRFSafeDialer Guard in SafeMode
# SSRF via IPv6 Transition Address Bypass of SSRFSafeDialer Guard in SafeMode
## Summary
The `isPrivateIP` function in `kernel/util/net.go`, used by `SSRFSafeDialer` to enforce SSRF protectio...
## Summary
The `isPrivateIP` function in `kernel/util/net.go`, used by `SSRFSafeDialer` to enforce SSRF protectio...
π¨ CVE-2026-74906
SiYuan before v3.7.4 contains an incorrect authorization vulnerability in eight publish-mode reader-facing endpoints that filter results using the visibility list instead of the disabled list. Anonymous visitors can discover and read content from documents explicitly marked as forbidden from publishing by accessing search, backlink, asset content, saved criteria, recent documents, graph, and tag endpoints.
π@cveNotify
SiYuan before v3.7.4 contains an incorrect authorization vulnerability in eight publish-mode reader-facing endpoints that filter results using the visibility list instead of the disabled list. Anonymous visitors can discover and read content from documents explicitly marked as forbidden from publishing by accessing search, backlink, asset content, saved criteria, recent documents, graph, and tag endpoints.
π@cveNotify
GitHub
Six publish-mode reader-facing endpoints filter results using the "invisible" list instead of the "disabled" (forbidden) list,β¦
Found via the same technique as the MCP path-traversal finding: tracing
a class of very recently disclosed bugs (e.g. GHSA-p4qw-vx5p-g984,
"publish filter for database backlinks consults the...
a class of very recently disclosed bugs (e.g. GHSA-p4qw-vx5p-g984,
"publish filter for database backlinks consults the...
π¨ CVE-2026-74907
Grav before 2.0.15 contains a path traversal vulnerability in the static asset server within index.php that uses string prefix matching instead of directory-boundary validation. Unauthenticated attackers can access files in sibling directories by exploiting directory names that extend the base path string, such as requesting assets-secret when assets is the configured base.
π@cveNotify
Grav before 2.0.15 contains a path traversal vulnerability in the static asset server within index.php that uses string prefix matching instead of directory-boundary validation. Unauthenticated attackers can access files in sibling directories by exploiting directory names that extend the base path string, such as requesting assets-secret when assets is the configured base.
π@cveNotify
GitHub
Unauthenticated Path Traversal via Missing Directory-Boundary Check in `plugin-asset-map.php` Static Asset Server (`index.php`)
**Verified against:** `getgrav/grav` devel branch, `GRAV_VERSION = "2.0.15"`, file `index.php
## Title
Unauthenticated Path Traversal via Missing Directory-Boundary Check in `plugin-a...
## Title
Unauthenticated Path Traversal via Missing Directory-Boundary Check in `plugin-a...
π¨ CVE-2026-74908
Grav plugin-api before 1.0.15 contains a script injection vulnerability where the SVG sanitizer only checks for the exact extension 'svg', allowing .svgz and .xhtml files to bypass sanitization and be stored unsanitized. Attackers with api.media.write permission can upload files containing executable script payloads that execute in the site origin when accessed by administrators or visitors.
π@cveNotify
Grav plugin-api before 1.0.15 contains a script injection vulnerability where the SVG sanitizer only checks for the exact extension 'svg', allowing .svgz and .xhtml files to bypass sanitization and be stored unsanitized. Attackers with api.media.write permission can upload files containing executable script payloads that execute in the site origin when accessed by administrators or visitors.
π@cveNotify
GitHub
grav-plugin-api media upload: the SVG sanitizer is keyed on the literal extension "svg", so .svgz and .xhtml pass the denylistβ¦
The plugin-api upload gate is a denylist plus an SVG sanitizer that only fires when the extension string is exactly `svg`, so `.svgz` (gzipped SVG) and `.xhtml` clear both checks and are written to...
π¨ CVE-2026-75107
Grav Form Plugin before 9.1.19 fails to escape field-definition properties including prepend, append, spacer text, section text, and select option labels in form templates. Attackers with form authoring privileges can inject arbitrary HTML and JavaScript that executes for all form visitors through unescaped |raw filters and unquoted attributes.
π@cveNotify
Grav Form Plugin before 9.1.19 fails to escape field-definition properties including prepend, append, spacer text, section text, and select option labels in form templates. Attackers with form authoring privileges can inject arbitrary HTML and JavaScript that executes for all form visitors through unescaped |raw filters and unquoted attributes.
π@cveNotify
GitHub
grav-plugin-form: field-definition properties (prepend/append/spacer/section text) render with |raw and the select option labelβ¦
## Affected versions and vulnerable location
- Confirmed on grav-plugin-form at `1ac283d` (tag 9.1.17).
- `|raw` field-definition sinks (no `|e`):
- `templates/forms/fields/text/text.html.tw...
- Confirmed on grav-plugin-form at `1ac283d` (tag 9.1.17).
- `|raw` field-definition sinks (no `|e`):
- `templates/forms/fields/text/text.html.tw...
π¨ CVE-2026-75774
A vulnerability was determined in karakeep-app karakeep up to 0.32.0. The impacted element is an unknown function of the file apps/web/server/auth.ts of the component OAuth Sign-In. This manipulation causes improper authentication. It is possible to initiate the attack remotely. The complexity of an attack is rather high. The exploitability is regarded as difficult. The exploit has been publicly disclosed and may be utilized. The project was informed of the problem early through an issue report but has not responded yet.
π@cveNotify
A vulnerability was determined in karakeep-app karakeep up to 0.32.0. The impacted element is an unknown function of the file apps/web/server/auth.ts of the component OAuth Sign-In. This manipulation causes improper authentication. It is possible to initiate the attack remotely. The complexity of an attack is rather high. The exploitability is regarded as difficult. The exploit has been publicly disclosed and may be utilized. The project was informed of the problem early through an issue report but has not responded yet.
π@cveNotify
GitHub
GitHub - karakeep-app/karakeep: A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic taggingβ¦
A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search - karakeep-app/karakeep
π¨ CVE-2026-75827
Grav before 2.0.15 contains an arbitrary file write vulnerability in the Blueprint dynamic-data bare-function validation that uses an incomplete denylist instead of a positive allowlist. Attackers with page-edit or blueprint-config access can invoke the error_log function through a data directive to append PHP payloads to web-accessible files, achieving remote code execution.
π@cveNotify
Grav before 2.0.15 contains an arbitrary file write vulnerability in the Blueprint dynamic-data bare-function validation that uses an incomplete denylist instead of a positive allowlist. Attackers with page-edit or blueprint-config access can invoke the error_log function through a data directive to append PHP payloads to web-accessible files, achieving remote code execution.
π@cveNotify
GitHub
Blueprint dynamic-data bare-function branch is denylist-gated and omits error_log, giving arbitrary file write
## Affected versions and vulnerable location
- Confirmed on grav core at `78ebfc1` (tag 2.0.13).
- Sinks:
- `system/src/Grav/Common/Data/Blueprint.php:455-458` `call_user_func_array($o, $par...
- Confirmed on grav core at `78ebfc1` (tag 2.0.13).
- Sinks:
- `system/src/Grav/Common/Data/Blueprint.php:455-458` `call_user_func_array($o, $par...
π¨ CVE-2026-75828
Grav before 2.0.15 contains a stored cross-site scripting vulnerability in the detectXss() function where unpaired quotes in unquoted attribute values bypass event-handler detection. Authenticated editors can inject event handlers like onerror= that pass validation and execute in visitor browsers when page content is rendered.
π@cveNotify
Grav before 2.0.15 contains a stored cross-site scripting vulnerability in the detectXss() function where unpaired quotes in unquoted attribute values bypass event-handler detection. Authenticated editors can inject event handlers like onerror= that pass validation and execute in visitor browsers when page content is rendered.
π@cveNotify
GitHub
detectXss() misses an event-handler attribute after an unpaired quote in an unquoted attribute value, giving stored XSS
## Affected versions and vulnerable location
- Confirmed on grav core at `78ebfc1` (tag 2.0.13).
- Detector: `system/src/Grav/Common/Security.php:290`, the `on_events` regex, run via `patternMa...
- Confirmed on grav core at `78ebfc1` (tag 2.0.13).
- Detector: `system/src/Grav/Common/Security.php:290`, the `on_events` regex, run via `patternMa...
π¨ CVE-2026-75829
grav-plugin-api versions before 1.0.15 fail to validate Twig content in the translate() endpoint, allowing attackers with api.pages.write permission to persist pages with process.twig enabled. Attackers can submit crafted header and content parameters to execute server-side template injection payloads that are evaluated at render time.
π@cveNotify
grav-plugin-api versions before 1.0.15 fail to validate Twig content in the translate() endpoint, allowing attackers with api.pages.write permission to persist pages with process.twig enabled. Attackers can submit crafted header and content parameters to execute server-side template injection payloads that are evaluated at render time.
π@cveNotify
GitHub
grav-plugin-api PagesController::translate() persists page header and content without guardTwigContent, letting an api.pages.writeβ¦
## Affected versions and vulnerable location
- Confirmed on grav-plugin-api at `bdca860` (tag 1.0.13).
- Vulnerable method: `classes/Api/Controllers/PagesController.php:1040` `translate()` (rou...
- Confirmed on grav-plugin-api at `bdca860` (tag 1.0.13).
- Vulnerable method: `classes/Api/Controllers/PagesController.php:1040` `translate()` (rou...
π¨ CVE-2026-75830
grav-plugin-api (getgrav/grav-plugin-api) versions >= 1.0.0-beta.10 and <= 1.0.14 contain a path traversal vulnerability in the PagesController::batchCopy() method. An incomplete fix for GHSA-qjq4-jp55-4mx2 left the user-controlled 'suffix' parameter (via POST /api/v1/pages/batch) unvalidated. An authenticated user with the api.pages.write permission (editor-level, not super-admin) can supply path traversal sequences (e.g. /../../../) in the suffix parameter to escape the intended user/pages/ directory and write attacker-controlled page content and page media to arbitrary filesystem locations writable by the web server process. The vulnerability is fixed in 1.0.15.
π@cveNotify
grav-plugin-api (getgrav/grav-plugin-api) versions >= 1.0.0-beta.10 and <= 1.0.14 contain a path traversal vulnerability in the PagesController::batchCopy() method. An incomplete fix for GHSA-qjq4-jp55-4mx2 left the user-controlled 'suffix' parameter (via POST /api/v1/pages/batch) unvalidated. An authenticated user with the api.pages.write permission (editor-level, not super-admin) can supply path traversal sequences (e.g. /../../../) in the suffix parameter to escape the intended user/pages/ directory and write attacker-controlled page content and page media to arbitrary filesystem locations writable by the web server process. The vulnerability is fixed in 1.0.15.
π@cveNotify
GitHub
Path Traversal in grav-plugin-api PagesController::batchCopy()
### Summary
An incomplete fix for GHSA-qjq4-jp55-4mx2 allows any authenticated user with `api.pages.write` permission (editor-level, not super-admin) to write attacker-controlled page content an...
An incomplete fix for GHSA-qjq4-jp55-4mx2 allows any authenticated user with `api.pages.write` permission (editor-level, not super-admin) to write attacker-controlled page content an...
π¨ CVE-2026-75831
Grav before 2.0.15 contains a stored cross-site scripting vulnerability in the audio and video media rendering through the sourceParsedownElement method. The media URL fragment is concatenated unescaped into rawHtml source elements, allowing attackers to inject arbitrary HTML and JavaScript that executes in viewers' sessions.
π@cveNotify
Grav before 2.0.15 contains a stored cross-site scripting vulnerability in the audio and video media rendering through the sourceParsedownElement method. The media URL fragment is concatenated unescaped into rawHtml source elements, allowing attackers to inject arbitrary HTML and JavaScript that executes in viewers' sessions.
π@cveNotify
GitHub
[security] Fix stored CSS injection via image resize() media action Β· getgrav/grav@aba291a
The resize() media action wrote its caller-controlled width/height
straight into styleAttributes as 'width: <value>px', bypassing the
style() sanitizer added for the e...
straight into styleAttributes as 'width: <value>px', bypassing the
style() sanitizer added for the e...
π¨ CVE-2026-75832
The Grav API plugin (getgrav/grav-plugin-api, bundled with Grav 2.0) before version 1.0.14 (fixed in 1.0.15) contains a missing authorization vulnerability in BlueprintPathResolver::resolveUserScope(). The method gates the users/<name> scope on the account's raw super-admin ACL flag (access.api.super) instead of validating the presented API key's actual scope. An attacker holding an API key scoped only to api.media.write minted on a super-admin account can bypass the authorization check and, via POST /blueprint-upload or GET /blueprint-files, write a file into another user's scope (in the shared user/accounts/ directory, constrained to image extensions by assertSafeExtension()) and browse that scope's file listing, despite the key not being granted api.users.write.
π@cveNotify
The Grav API plugin (getgrav/grav-plugin-api, bundled with Grav 2.0) before version 1.0.14 (fixed in 1.0.15) contains a missing authorization vulnerability in BlueprintPathResolver::resolveUserScope(). The method gates the users/<name> scope on the account's raw super-admin ACL flag (access.api.super) instead of validating the presented API key's actual scope. An attacker holding an API key scoped only to api.media.write minted on a super-admin account can bypass the authorization check and, via POST /blueprint-upload or GET /blueprint-files, write a file into another user's scope (in the shared user/accounts/ directory, constrained to image extensions by assertSafeExtension()) and browse that scope's file listing, despite the key not being granted api.users.write.
π@cveNotify
GitHub
BlueprintPathResolver::resolveUserScope() uses bare access.api.super, letting an api.media.write-scoped key act as if it held api.users.write
## Vulnerability Details
**Component**: getgrav/grav-plugin-api (bundled with Grav 2.0's admin-next/API stack)
**Files**: `classes/Api/Services/BlueprintPathResolver.php` (`resolveUserScope...
**Component**: getgrav/grav-plugin-api (bundled with Grav 2.0's admin-next/API stack)
**Files**: `classes/Api/Services/BlueprintPathResolver.php` (`resolveUserScope...
π¨ CVE-2026-75834
Grav before 2.0.14 contains a stored cross-site scripting vulnerability in the Security::detectXss() function (system/src/Grav/Common/Security.php). All XSS detection patterns use the PCRE /u (UTF-8) modifier, so a single invalid UTF-8 byte anywhere in page content causes preg_match() to return false for every pattern, silently bypassing the save-time XSS safety gate (Validation::checkSafety()). An authenticated attacker with page-edit permissions (without the security.xss_whitelist privilege) can store malicious JavaScript that executes in the browser of a visitor who views the affected page.
π@cveNotify
Grav before 2.0.14 contains a stored cross-site scripting vulnerability in the Security::detectXss() function (system/src/Grav/Common/Security.php). All XSS detection patterns use the PCRE /u (UTF-8) modifier, so a single invalid UTF-8 byte anywhere in page content causes preg_match() to return false for every pattern, silently bypassing the save-time XSS safety gate (Validation::checkSafety()). An authenticated attacker with page-edit permissions (without the security.xss_whitelist privilege) can store malicious JavaScript that executes in the browser of a visitor who views the affected page.
π@cveNotify
GitHub
Single invalid UTF-8 byte disables every rule in Security::detectXss(), bypassing the page-content XSS safety gate
## Vulnerability Details
**Component**: getgrav/grav core
**File**: `system/src/Grav/Common/Security.php`
**Function**: `detectXss()` (all six entries in the `$patterns` array use the PCRE `u` mod...
**Component**: getgrav/grav core
**File**: `system/src/Grav/Common/Security.php`
**Function**: `detectXss()` (all six entries in the `$patterns` array use the PCRE `u` mod...
π¨ CVE-2026-75835
Grav API plugin (getgrav/grav-plugin-api) before 1.0.14 contains a missing authorization vulnerability in userPassesAuthorize() (AbstractApiController.php). The function fails to consult the calling request's API key scopes, relying instead on the account's raw super-admin flag and ACL grants. As a result, an authenticated attacker holding a scoped API key minted on a privileged account can bypass their declared scope restrictions to access authorize-gated UI metadata and item definitions (sidebar/menubar/widget items and users-list columns/row-actions/filter-tabs) that their key scope should deny, resulting in information disclosure.
π@cveNotify
Grav API plugin (getgrav/grav-plugin-api) before 1.0.14 contains a missing authorization vulnerability in userPassesAuthorize() (AbstractApiController.php). The function fails to consult the calling request's API key scopes, relying instead on the account's raw super-admin flag and ACL grants. As a result, an authenticated attacker holding a scoped API key minted on a privileged account can bypass their declared scope restrictions to access authorize-gated UI metadata and item definitions (sidebar/menubar/widget items and users-list columns/row-actions/filter-tabs) that their key scope should deny, resulting in information disclosure.
π@cveNotify
GitHub
userPassesAuthorize() has two independent unscoped paths, leaking authorize-gated items to scoped API keys
## Vulnerability Details
**Component**: getgrav/grav-plugin-api (bundled with Grav 2.0's admin-next/API stack)
**Files**: `classes/Api/Controllers/AbstractApiController.php` (`userPassesAuthor...
**Component**: getgrav/grav-plugin-api (bundled with Grav 2.0's admin-next/API stack)
**Files**: `classes/Api/Controllers/AbstractApiController.php` (`userPassesAuthor...
π¨ CVE-2026-75836
The Grav API plugin (getgrav/grav-plugin-api, bundled with Grav's admin-next/API stack) before 1.0.14 fails to enforce the authorize requirement in MenubarController::executeAction(). While the GET /menubar/items listing endpoint correctly filters menubar items via userPassesAuthorize(), the POST /api/v1/menubar/actions/{plugin}/{action} endpoint only checks the baseline api.access permission and never evaluates the authorize field a plugin registered for that action. Any authenticated caller with api.access can therefore invoke a privileged menubar action directly, bypassing the intended authorization. No plugin bundled with core Grav currently registers a privileged authorize handler, so on a stock install the impact is latent; the flaw affects any first- or third-party plugin relying on the documented authorize semantics.
π@cveNotify
The Grav API plugin (getgrav/grav-plugin-api, bundled with Grav's admin-next/API stack) before 1.0.14 fails to enforce the authorize requirement in MenubarController::executeAction(). While the GET /menubar/items listing endpoint correctly filters menubar items via userPassesAuthorize(), the POST /api/v1/menubar/actions/{plugin}/{action} endpoint only checks the baseline api.access permission and never evaluates the authorize field a plugin registered for that action. Any authenticated caller with api.access can therefore invoke a privileged menubar action directly, bypassing the intended authorization. No plugin bundled with core Grav currently registers a privileged authorize handler, so on a stock install the impact is latent; the flaw affects any first- or third-party plugin relying on the documented authorize semantics.
π@cveNotify
GitHub
MenubarController::executeAction() never enforces the authorize requirement it advertises
## Vulnerability Details
**Component**: getgrav/grav-plugin-api (bundled with Grav 2.0's admin-next/API stack)
**File**: `classes/Api/Controllers/MenubarController.php`
**Lines**: 82-115 (`exe...
**Component**: getgrav/grav-plugin-api (bundled with Grav 2.0's admin-next/API stack)
**File**: `classes/Api/Controllers/MenubarController.php`
**Lines**: 82-115 (`exe...
π¨ CVE-2026-75837
Grav before 2.0.14 fails to guard the access field in the core group blueprint with the required security@: admin.super restriction. A delegated admin.users operator can save a group with access[admin][super]=true to escalate to super-admin, gaining scheduler and Twig evaluation capabilities.
π@cveNotify
Grav before 2.0.14 fails to guard the access field in the core group blueprint with the required security@: admin.super restriction. A delegated admin.users operator can save a group with access[admin][super]=true to escalate to super-admin, gaining scheduler and Twig evaluation capabilities.
π@cveNotify
GitHub
Missing admin.super guard on core group blueprint access field allows admin.users operator to escalate to super-admin
## Summary
The core Flex group blueprint `system/blueprints/user/group.yaml` (access field, lines 48-55) omits the `security@: admin.super` field guard that its sibling account blueprint carries (...
The core Flex group blueprint `system/blueprints/user/group.yaml` (access field, lines 48-55) omits the `security@: admin.super` field guard that its sibling account blueprint carries (...
π¨ CVE-2026-75838
DOMPurify before 3.4.13 contains a cross-site scripting vulnerability in IN_PLACE sanitization where element-removal hooks fail to neutralize detached subtrees. Attackers can supply HTML with event handlers on descendant elements that execute after sanitization completes, even though the returned root appears clean.
π@cveNotify
DOMPurify before 3.4.13 contains a cross-site scripting vulnerability in IN_PLACE sanitization where element-removal hooks fail to neutralize detached subtrees. Attackers can supply HTML with event handlers on descendant elements that execute after sanitization completes, even though the returned root appears clean.
π@cveNotify
GitHub
IN_PLACE hook removal leaves a detached subtree executable, causing XSS
### Summary
During `IN_PLACE` sanitization, a hook that removes an element can leave that element's detached descendants executable. A descendant image can retain its attacker-provided `onlo...
During `IN_PLACE` sanitization, a hook that removes an element can leave that element's detached descendants executable. A descendant image can retain its attacker-provided `onlo...
π¨ CVE-2026-75839
ArcadeDB (com.arcadedb:arcadedb-server) versions <= 26.7.3 contain an insecure direct object reference (IDOR) vulnerability in the Raft cluster-info endpoints (GetClusterHandler and PostBootstrapStateHandler), which authenticate but do not authorize access. On an ArcadeDB HA cluster (only reachable when arcadedb.ha.enabled is set and the ha-raft module is loaded), any authenticated user β including one granted access to only one database or none β can enumerate the full server database registry and retrieve per-database metadata such as database names, last transaction IDs, bootstrap fingerprints, and peer/leader cluster topology, resulting in cross-database information disclosure. Fixed in 26.8.1.
π@cveNotify
ArcadeDB (com.arcadedb:arcadedb-server) versions <= 26.7.3 contain an insecure direct object reference (IDOR) vulnerability in the Raft cluster-info endpoints (GetClusterHandler and PostBootstrapStateHandler), which authenticate but do not authorize access. On an ArcadeDB HA cluster (only reachable when arcadedb.ha.enabled is set and the ha-raft module is loaded), any authenticated user β including one granted access to only one database or none β can enumerate the full server database registry and retrieve per-database metadata such as database names, last transaction IDs, bootstrap fingerprints, and peer/leader cluster topology, resulting in cross-database information disclosure. Fixed in 26.8.1.
π@cveNotify
GitHub
Raft cluster-info endpoints leak cross-database metadata to any authenticated user (IDOR)
## Summary
On an ArcadeDB HA cluster, the Raft cluster-info endpoints authenticate but do not authorize: they enumerate the full server database registry and return per-database metadata (names, bo...
On an ArcadeDB HA cluster, the Raft cluster-info endpoints authenticate but do not authorize: they enumerate the full server database registry and return per-database metadata (names, bo...
π¨ CVE-2026-75840
ArcadeDB before 26.8.1 contains an arbitrary file read vulnerability in the GraalVM JavaScript sandbox allowlist enforcement, which uses unescaped regular expressions to validate package names. Attackers with trigger creation privileges can use Java.type() to access java.util.zip.ZipFile or java.util.jar.JarFile classes and read arbitrary files on the host system as the ArcadeDB server process.
π@cveNotify
ArcadeDB before 26.8.1 contains an arbitrary file read vulnerability in the GraalVM JavaScript sandbox allowlist enforcement, which uses unescaped regular expressions to validate package names. Attackers with trigger creation privileges can use Java.type() to access java.util.zip.ZipFile or java.util.jar.JarFile classes and read arbitrary files on the host system as the ArcadeDB server process.
π@cveNotify
GitHub
Unescaped Regex in JS Sandbox Package Allowlist Enables Arbitrary Host File Read via Triggers
## Summary
ArcadeDB's GraalVM JavaScript sandbox (used by triggers, functions, and scripted
queries) restricts which Java classes a script may look up via `Java.type(...)`
to a short allow...
ArcadeDB's GraalVM JavaScript sandbox (used by triggers, functions, and scripted
queries) restricts which Java classes a script may look up via `Java.type(...)`
to a short allow...