Security Report
Apache Struts Command Injection Vulnerability
Strapi Cleartext Storage of Sensitive Information Vulnerability
ONLYOFFICE Docs Server Path Traversal Vulnerability
ProFTPD Improper Access Control Vulnerability
ISC BIND Data Processing Errors Vulnerability
PraisonAI: CodeAgent Executes LLM-Generated Code Without Sandboxing and Leaks All Environment Secrets
`CodeAgent._execute_python()` executes LLM-generated Python code in a subprocess with the complete parent-process environment (`os.environ.copy()`), zero AST validation, zero import restrictions, and no sandbox enforcement — even when `CodeConfig(sandbox=True)` is explicitly set. This …
Payload Form Builder has an RCE issue
A vulnerability in `@payloadcms/plugin-form-builder` in versions < 3.90.0 allow submissions which could be crafted to execute remote code on the server.
**You are affected if:**
– You are using `@payloadcms/plugin-form-builder`
## Patches
Users should upgrade Payload packages to `>= 3…
vm2 contains a sandbox escape vulnerability
CVE-2026-106102
CVE-2026-108263
PraisonAI: AICoder Arbitrary File Write and Command Execution via LLM Tool Calls
The `AICoder` UI component exposes `write_to_file` and `execute_command` tools to the LLM with no path validation and no command sanitization. An attacker can achieve arbitrary file write to any location on the filesystem (including `/root/.ssh/authorized_keys`, `/etc/crontab`) and arbit…
Langflow: OS command injection (RCE) via arbitrary command in MCP stdio server configuration
Before **Langflow 1.10.3**, the MCP stdio transport launched whatever `command` / `args` a user put in an MCP server configuration, with no allowlist and (before 1.10.3) wrapped in `bash -c "exec {command} …"`. Any user able to reach the MCP server settings ("Settings → MCP Servers …
CVE-2026-67269
Langflow: PythonREPLComponent executes unsandboxed Python code, enabling authenticated RCE and privilege escalation
Langflow's built-in Python interpreter components — `PythonREPLComponent` (Python Interpreter) and the legacy `PythonREPLToolComponent` (Python REPL Tool) — executed arbitrary user- or model-supplied Python code inside flows without effective sandboxing. Because the code ran in-proc…
CVE-2026-104803
CVE-2026-105278
fast-jwt: Incomplete patch of CVE-2026-34950: Non-whitespace key-prefix re-enables RSA→HS256 algorithm confusion
The fix for CVE-2026-34950 (CVSS 9.1, released in v6.2.0) is **incomplete**. It adds `key.trim()` to the PEM-detection path in `src/crypto.js`, but `String.prototype.trim()` only strips characters classified as whitespace by the ECMAScript specification. The subsequent `^`-anchored rege…
CVE-2026-107780
Handlebars: JavaScript Injection via AST Type Confusion in compile (bypass of CVE-2026-33937)
`Handlebars.compile()` and `Handlebars.precompile()` accept a pre-parsed AST as well as a template string. Handlebars 4.7.9 added validation for such ASTs. It only checks values on `PathExpression`, `NumberLiteral` and `BooleanLiteral` nodes, and the compiler still writes several other A…
Payload: Unauthorized update to collection documents
An attacker can submit a request to a specific endpoint that permits collection documents to be updated regardless of access control and field level access control.
**You are affected if:**
– You are configuring `orderable: true` with any collection or join field.
## Patches
In the pa…
CVE-2026-62253
CVE-2026-107204
Homer: Hardcoded Default Admin Password 'sipcapture' With No Forced Change on First Login
On every fresh Homer deployment using internal authentication, the bootstrap process automatically creates an `admin` account with the password `sipcapture` (stored as a legacy SHA-256 hex hash). There is no first-login forced-change mechanism. Any attacker who reaches the login endpoint…
Homer: Complete Authentication Bypass When coordinator.jwt.secret Is Empty (Default)
Both JWT middleware functions (`JWTMiddleware` and `JWTMiddlewareV4`) immediately return `next(c)` when `jwtSecret == ""`. The JWT secret defaults to an empty string. On a default installation, all protected API endpoints under `/api/v1`, `/api/v3`, and `/api/v4` are completely unauthent…
CVE-2026-73278
CVE-2026-106446
CVE-2026-105641
CVE-2026-104711
CVE-2026-88395
Backstage: Sensitive information exposure in Scaffolder
An authenticated Backstage user who can read another user's Scaffolder task may receive internal execution data. In deployments where that data contains credentials for an external service, this may permit disclosure and unauthorized changes in that external service.
### Patches
Patche…
CVE-2026-106197
CVE-2026-102322
CVE-2026-105763
CVE-2026-108753
TinaCMS admin preview iframe loads an attacker-controlled origin from the URL fragment
The TinaCMS admin builds its preview `<iframe src>` from the `/~/*` hash-router splat without checking that the value stays same-origin. A fragment with a doubled slash (`#/~//attacker.example/p`) becomes the protocol-relative URL `//attacker.example/p`, so the admin frames an external …
Capacitor Android and iOS: remote content can be loaded at the app origin via the internal HTTP proxy path
Capacitor's WebView navigation guard validated only the **host and scheme** of a
target URL, not its **path**. Because the internal HTTP proxy path
(`/_capacitor_http_interceptor_`) is served at the application's own origin, a
frame navigation to it was always treated as in-app navigatio…
CVE-2026-78357
An attacker who has p…
CVE-2026-108860
CVE-2026-108264
CVE-2026-62176
PraisonAI: Code Injection via f-string Interpolation in Deploy API Server Generation
The `deploy/api.py` module generates Python server code by directly interpolating the `agents_file` parameter into an f-string that is then written to a file and executed via `subprocess.Popen()`. An attacker who controls the `agents_file` value (via CLI argument, configuration, or upstr…
CVE-2026-97720
CVE-2026-101023
CVE-2026-106195
CVE-2026-105640
CVE-2026-105812
Nginx UI: Authenticated Remote Code Execution via Backup Restore App Config Overwrite
An authenticated nginx-ui user can call `POST /api/restore`, upload a forged encrypted backup, restore `app.ini`, set nginx command settings such as `TestConfigCmd`, and then trigger command execution with `POST /api/nginx/test`.
This was validated on nginx-ui `2.3.11 2(523) 6c86e5a5` i…
Vikunja: Link-share token reads any tenant's kanban buckets and enumerates usernames/IDs instance-wide (BOLA)
The task-collection endpoint `GET /api/v1/projects/{project}/views/{view}/tasks` loads the requested project view straight from the URL path without verifying the caller is authorized for it. For a **link-share token**, the task query is correctly pinned to the share's own project, but t…
Hazelcast allows arbitrary member memory access by low-privileged client
A flaw has been found in Hazelcast Enterprise Edition and Community Edition, which would allow a low-privileged malicious client to read arbitrary data in memory from any cluster member (including Java heap memory, off-heap data, and JVM process address space). Additionally, such a clien…
Handlebars: JavaScript Injection via Own Property Check Bypass
Handlebars can expose the `Function` constructor despite its prototype-access deny list. When a template reaches `Function.prototype`, its own `constructor` property is returned before the deny list is checked. An attacker who can render a controlled template with `allowProtoMethodsByDef…
AsyncHttpClient: Replay to a different host sends the original host request and credentials to the new host
When a request is replayed onto a different host, the client updates only the current request and leaves the target request pointing at the original host. Four consumers read that stale value, and each one sends the first host's request, credentials, or both to the second host.
A replay …
Payload authentication token field handling issue
Under certain field configurations, Payload could include unintended values in the authentication token issued at login.
You are affected if:
– You use an affected Payload version and have configured a custom field option that maps a field to a reserved authentication claim name.
### …
MsQuic: Improper Certificate Validation in Microsoft.Native.Quic.MsQuic.OpenSSL
Improper TLS hostname verification allows a man-in-the-middle (MITM) attack on MsQuic.
# Details
Only MsQuic with the OpenSSL and QuicTLS TLS backends is affected (the Schannel backend is not affected).
## Patches
2.6.1, 2.5.11, and 2.4.20
# Impact
An on-path attacker could spoof a…
CVE-2026-108980
CVE-2026-108550
CVE-2026-55797
Nginx-UI AuthRequired token cookie fallback enables CSRF against management APIs
Nginx-UI v2.4.3 stores the API JWT in a browser cookie named `token` and the `AuthRequired` middleware accepts that cookie as an authentication source. Because management endpoints are protected by `AuthRequired` and do not enforce a universal CSRF token or Origin/Referer check, a remote …
Nginx UI: Incomplete fix of CVE-2026-84315 – the api/cluster router was not – wrapped in RequireSecureSession, so those sensitive mutations run without OTP step-up
Incomplete fix of GHSA-5v7c-xpfp-p65m: the secure-session (OTP step-up) requirement added to the nginx, cert, dns, backup, site, and stream mutation routers was not applied to the parallel api/cluster router, so cluster node management and cluster-wide nginx reload/restart run with only …
0xJacky/nginx-ui /api/nodes Leaks Cluster Node Tokens and Allows Cross-Node Impersonation as initUser
0xJacky/nginx-ui contains a high-severity trust-boundary failure between ordinary users and cluster node credentials. The source code shows that cluster node list and detail endpoints are reachable by ordinary authenticated users and return node objects containing the token field.
That same…
Nginx UI: Node Secret Credential Exposure via URL Query Parameter
nginx-ui's `Node.Secret` is a master credential that bypasses all JWT/password authentication for the entire API. The application accepts this credential via a **URL query parameter** (`?node_secret=`), causing it to be recorded in plaintext in HTTP access logs, reverse …
Argo CD repo-server command injection via crafted SSH repository SOCKS5 proxy URL
Argo CD runs a shell command in the repo-server when it clones or fetches an SSH Git repository that has a proxy URL. The proxy host and port are copied into an SSH `ProxyCommand`. A host that contains shell metacharacters breaks out of that command and runs in the repo-server.
All vers…
CVE-2026-107813
CVE-2026-107811
CVE-2026-107809
CVE-2026-107807
CVE-2026-104084
CVE-2026-104392
CVE-2026-103413
When a deployment was started, Karavan unmarshalled a project's `kubernetes.yaml` and applied every resource it contained to the cluster without restricting the resource kinds, without rejecting security-sensitive pod options, and w…
CVE-2026-19569
PraisonAI: Shell command allowlist bypass via find -exec built-in action
The shell command execution hardening introduced in PraisonAI npm 1.7.2 / Python 4.6.58 to fix GHSA-5jv7-2mjm-h6qj (utility-tools shell chaining) and GHSA-vjv9-7m7j-h833 (SandboxExecutor chaining) can be bypassed via `find`'s built-in `-exec` action.
The fix blocks shell metacharacters…
CVE-2026-107375
JHipster: SQL Injection in the Parameter of JHipster-Generated Reactive (WebFlux + R2DBC) Applicationssort
– **Product**: jhipster/generator-jhipster (npm package `generator-jhipster`)
– **Affected versions**: v7.0.0 through v9.2.0
– **Component**: generated reactive-application code, template `EntityM…
Ghost: Remote Code Execution via Bookmark Card Images
An image processing library bundled with Ghost contained a vulnerability in its SVG handling. Any staff user, including Contributors, could create a bookmark card for an attacker-controlled website, resulting in arbitrary commands being run on the Ghost server.
### Vulnerable versions
…
WeasyPrint: EPS images reach the Ghostscript interpreter resulting in RCE
This was found during a pentest, funded by the NLNnet foundation, conducted by Stefan Vink from Radically Open Security and the only High issue found.
WeasyPrint passes fetched image bytes directly to Pillow's generic format dispatcher without restricting the input format. When Ghosts…
Backstage: Improper validation of TechDocs MkDocs configuration
An attacker who can provide configuration to a TechDocs build may execute code in the generator runtime. Impact is greatest when documentation generation runs with backend credentials or host access.
### Patches
Patched in `@backstage/plugin-techdocs-node` version `1.15.4`.
### Workar…
CVE-2026-106558
CVE-2026-15894
CVE-2026-106373
CVE-2026-106193
CVE-2026-106190
CVE-2026-101207
Kiota: Code injection through doc-comment delimiter reformation in Kiota Java and PHP generators
An attacker who controls or tampers with an OpenAPI description can cause Kiota to emit attacker-controlled Java or PHP source outside a generated documentation comment. The affected sanitizers remove comment terminators rather than neutralizing them, allowing a terminator to reform from…
CVE-2026-105797
CVE-2026-105985
Any authenticated user with basic Control Panel access can submit request-controlled component classes and property overrides. By first overriding an EntryType o…
CVE-2026-98171
smb: client: fix next_buffer UAF and NextCommand bounds in compound PDUs
Fix several related bounds checking and pointer lifecycle issues in
receive_encrypted_standard()'s handling of compound encrypted frames:
– Clear next_buffe…
CVE-2026-39793
CVE-2026-105701
CVE-2026-100511
CVE-2026-105642
CVE-2026-101919
Payload: Bypassed sanitization of user uploaded SVGs
A malicious SVG file upload could bypass sanitization, be stored, and execute attacker-controlled JavaScript (XSS) after a user downloads it and opens it.
**You are affected if:**
– You have a collection configured to upload and allow SVG files which can then be downloaded by users.
##…
PraisonAI: AgentOS defaults to network-exposed no-auth mode, allowing unauthenticated agent invocation and instruction disclosure
The AgentOS server in the `praisonai` TypeScript/npm package ships an insecure default: it binds `0.0.0.0`, sets no API key, and uses CORS `*` with credentials. The API-key middleware is only registered when an API key is configured, so the documented quickstart (`new AgentOS({agents:[..…
PraisonAI: AgentMail webhook mode accepts forged unsigned message.received events and invokes agents
## Summary
`praisonai` AgentMail webhook mode exposes a public aiohttp webhook endpoint that accepts caller-controlled `message.received` JSON without verifying AgentMail's Svix webhook signatures, then dis…
CVE-2026-106186
PraisonAI: DNS rebinding bypass in `web_crawl` SSRF protection allows internal response disclosure
PraisonAI's `web_crawl` agent tool performs a server-side HTTP fetch of an agent/attacker-influenced URL. SSRF is meant to be prevented by `_is_safe_crawl_url()`, which resolves the hostname and rejects private/loopback/link-local IPs **at validation time**. The validated value is the UR…
Backstage: Improper input validation in Sentry scaffolder actions
An authenticated internal user who can execute the affected actions may cause the backend to contact unintended destinations and disclose Sentry integration credentials. Subsequent impact depends on network reachability and the privileges granted to the configured token.
### Patches
Up…
PraisonAI: Crawl4AI/Chromium backend is also affected by the `web_crawl` SSRF validation bypass
The DNS-rebinding / redirect SSRF bypass in PRAI-05 is **not limited to the httpx/urllib backend**. When `crawl4ai` (headless Chromium via Playwright) is installed, `web_crawl` auto-selects `provider=crawl4ai`, and the headless browser re-resolves DNS and follows redirects on its own —…
Backstage has iImproper filesystem validation in Bitbucket pull-request scaffolder actions
An authenticated user who can execute an eligible template and influence an allowed Bitbucket repository could affect filesystem paths outside the expected working area. Depending on the backend deployment, this could compromise backend confidentiality, integrity, or availability.
### P…
PraisonAI: Plugin Auto-Discovery Executes Arbitrary Python Files Without Verification
The plugin manager loads and executes arbitrary `.py` files from `.praisonai/plugins/` directories (both project-level and user home) via `importlib.util.spec_from_file_location()` + `exec_module()` with zero code signing, integrity verification, or sandboxing. Any attacker who can write…
PyMongo: PYTHON-5996 Heap out-of-bounds write via signed size overflow in BSON document encoding
CVE-2026-39453
CVE-2026-106194
CVE-2026-106191
CVE-2026-108865
CVE-2026-108259
Tina: Code injection via unescaped Git branch name in generated client source
`@tinacms/cli` inserts the raw Git branch value into the generated `client.ts` source without escaping or encoding. A Git-valid branch name can close the string literal and inject an arbitrary JavaScript expression that executes when the consumer build imports the generated client modul…
PraisonAI: Call API localhost-only authentication bypass via spoofed Host header
## Summary
PraisonAI's patched `PRAISONAI_CALL_AUTH=disabled` safeguard for the n8n/call agent invocation API can be bypassed with a spoofed `Host: 127.0.0.1` header, allowing an unauthenticated network caller to list and invo…
CVE-2026-107376
CVE-2026-106198
CVE-2026-108718
CVE-2026-57458
Vikunja: Plaintext storage of password-reset/email-confirm tokens in database enables account takeover on DB read access
Vikunja stores password-reset, email-confirmation, and account-deletion tokens in the `user_tokens` table in **plaintext**. If an attacker gains read access to the database through a backup leak, misconfigured storage, or SQL-level exposure, they can immediately use pending tokens to ta…
Vikunja: Link-share principal ID collision allows cross-account API token issuance and management
Vikunja accepts both regular-user JSON Web Tokens (JWTs) and link-share JWTs through its generic authenticated API route group. A link-share JWT resolves to a `models.LinkSharing` principal whose `GetID()` method returns the numeric `link_shares.id`. The API-token management model…
Vikunja: Scoped API token can mint unrestricted OAuth session credentials
A scoped API token can bypass its declared permissions by using the OAuth authorization flow to mint normal session credentials.
A token limited to:
“`json
{"oauth":["authorize"]}
“`
can call `/api/v1/oauth/authorize`, receive an OAuth authorization code, exchange it at `/api/v1/oau…
CVE-2026-108157
pyload-ng: getUserData/get_userdata exposed at Perms.ANY allow any authenticated account to brute-force the administrator password
`Api.getUserData` (legacy) and `Api.get_userdata` are declared with `@permission(Perms.ANY)` and are reachable at `/api/getUserData` and `/api/get_userdata`. Because `Perms.ANY == 0` and pyLoad's permission check is a bitmask AND, that gate is a no-op: **every authenticated account passe…
Nginx UI: Authentication bypass: password login does not enforce a passkey-only second factor (2FA bypass)
nginx-ui supports two second-factor methods — TOTP (OTP) and WebAuthn passkeys —
and reports an account as 2FA-enabled when **either** is configured. However, the
password login endpoint (`POST /api/login`) only enforces a second factor when a
**TOTP secret** is present. An account t…
Nginx UI: Backup restore follows crafted symlinks into the live Nginx configuration path before restore flags are applied
An authenticated user who can create and restore a backup can craft a valid backup archive that causes the restore staging process to write attacker-controlled files into the live Nginx configuration path even when both `restore_nginx` and `restore_nginx_ui` are set to `false`.
### Deta…
pyLoad has an authentication bypass in API key validation (check_apikey cache)
The API-key cache in `check_apikey()` allows an attacker to authenticate with a **forged API key** as long as the legitimate key for the same `key_id` has been used recently.
On a cache hit, the API key **secret is never verified**, resulting in a complete authentication bypass during t…
CVE-2026-107810
CVE-2026-107808
CVE-2026-107723
fast-jwt : Silent claim-validator bypass when JWT payload is a JSON array
`fast-jwt`'s `createVerifier` silently skips **all** configured claim validators (`exp`, `nbf`, `iss`, `aud`, `sub`, `jti`, `nonce`) when a validly-signed JWT carries a JSON array as its payload instead of an object. The verifier reports success while having enforced only the signature.…
MariaDB Connector/Node.js: SQL injection through object keys in SET expansion (permitSetMultiParamEntries)
With the non-default permitSetMultiParamEntries option enabled, an object passed as a query parameter is expanded into a SET clause, each key becoming a column name. The three code paths implementing that expansion built the backtick-quoted identifier by hand and wrote the key out un…
CVE-2026-107333
PraisonAI: SkillTools Executes Scripts Without Path Containment Validation
`SkillTools.run_skill_script()` accepts a `script_path` parameter and executes it via `subprocess.run()` without any path containment validation. While `FileTools` has `_validate_path()` with traversal detection, `SkillTools` performs none. An LLM-directed call can execute arbitrary scri…
Payload: Remote Code Execution through first-register
A crafted request to the public first-register operation can be used to perform a RCE exploit.
**You are affected if:**
– You use local auth strategy and your application remains without an initial user created
## Patches
In the patched version data submission to create first user is …
Payload: Incomplete validation during the upload file lifecycle
Under certain conditions, an authenticated user with permission to modify uploads could cause unintended files to be removed during file cleanup. This may result in data loss or service disruption.
You are affected if:
– You use Payload upload collections with local file storage.
– Untrus…
Ghost: Stored XSS via oEmbed Photo Responses
Embedding a URL from an attacker-controlled website could result in untrusted scripts being stored in post content. These scripts could run in the Ghost editor, on the published site, and in newsletter emails, possibly resulting in compromise of a staff user's admin session.
### Vulnera…
Backstage: Improper authentication in the OIDC provider
Deployments using OIDC email-based identity resolution with a provider that permits unverified email addresses may allow an authenticated provider user to assume another catalog identity. This may grant access and permissions associated with that user. No direct availability impact is de…
Homer: Authenticated SQL Injection via Unvalidated rawquery Field in /api/v4/statistics/query
The `V4StatisticsQuery` handler passes the user-supplied `rawquery` field directly to DuckDB without calling the `sqlvalidator.ValidateRawSQL` function used throughout the rest of the codebase. Any authenticated user can execute arbitrary SQL statements against all data accessible throug…
CVE-2026-105650
CVE-2026-104974
CVE-2026-77805
CVE-2026-107707
PraisonAI: API deploy code generator embeds unescaped YAML fields into Python source
## Summary
PraisonAI's API deployment generator copies `deploy.api.host` from `agents.yaml` directly into generated Python source without safe literal encoding. A malicious PraisonAI project can set that host value to a Py…
CVE-2026-104077
PraisonAI: Unsafe Dynamic Module Loading Leads to Arbitrary Code Execution via tools.py in AgentFlow
An unsafe dynamic module loading vulnerability allows an attacker who can control a workflow file and a sibling `tools.py` to execute arbitrary Python code when the workflow is executed.
### Details
The vulnerability is located in the workflow structured output resolution logic.
File: …
CVE-2026-107615
CVE-2026-107612
CVE-2026-107573
CVE-2026-103010
Hydra: Optuna custom_search_space can resolve and execute untrusted callables via get_method
`hydra-optuna-sweeper` accepted a configuration-controlled dotted path in
`hydra.sweeper.custom_search_space`, resolved it with the lower-level
`hydra.utils.get_method()` API, and later invoked the returned callable.
Hydra's object-lookup helpers intentionally trust their input and do n…
Hydra logging configuration permits unsafe callable resolution
Hydra passed its Python logging configuration to `logging.config.dictConfig()`. Python's logging configurator can resolve and invoke importable classes and factories named by configuration, including handler `class` values and formatter, filter, handler, queue, and listener `()` factorie…
Hydra instantiate target blacklist bypasses permit code execution
Hydra's `instantiate()` API resolves and invokes Python callables named by the `_target_` field in configuration. The target blacklist introduced for CVE-2026-68508 was incomplete.
Representative bypasses included execution wrappers such as `timeit.timeit`, executable deserialization th…
CVE-2026-106057
CVE-2026-79807
CVE-2026-106441
CVE-2026-106440
CVE-2026-98367
RDMA/siw: Clear association under lock if siw_qp_modify fails in siw_accept
We need to clear cep before release state_lock as siw_qp_llp_close and
siw_qp_modify->siw_qp_llp_close did.
Otherwise if siw_qp_modify() fails in siw_acc…
CVE-2026-98341
wifi: cfg80211: don't free driver-owned scan requests
When an interface goes down while a scan is running, cfg80211 completes
the scan towards userspace and frees the scan request. However, the
driver can be convinced that it owns…
CVE-2026-98320
netfilter: flowtable: hold reference on ct until flow is released
nf_ct_put() releases the ct->ext area inmediately, the rcu typesafe
semantics also allow to refer to the wrong conntrack from the flowtable
datapath. Hold reference…
CVE-2026-98260
exec: Cleanup POSIX timers right after de_thread()
A per-thread CPU timer holds a reference to the PID of the thread it is
attached to and, while it is armed, its node is queued in that thread's
posix_cputimers. The task is looked…
CVE-2026-98228
mips: select CONFIG_WEAK_REORDERING_BEYOND_LLSC from CONFIG_EYEQ
On I6500 CPU cores, lld and scd give no ordering guarantees (same as all
other instructions). To respect the assumption that arch_cmpxchg() is
fully ordered, we must…
CVE-2026-98166
drm/ttm: fix swapped-out resources never leaving their bulk_move range
ttm_tt_swapout() returns the number of pages swapped out on success and
a negative error code on failure; for a populated ttm it never returns
zero. Commit b2e…
Backstage: Improper validation of MkDocs plugin configuration in TechDocs
An authenticated attacker with control over a TechDocs source repository could cause a documentation build to retrieve and publish data from network locations reachable by the build environment. Exposure depends on deployment topology, build mode, and target endpoint protections. Modern …
Backstage: Remote code execution via crafted markdown_extensions in TechDocs mkdocs.yml
An authenticated user who can register catalog entities can provide a crafted `mkdocs.yml` causing arbitrary OS command execution on the TechDocs build host when the docs are built.
### Patches
Patched in `@backstage/plugin-techdocs-node`, version `1.15.4`.
### Workarounds
If you can…
Backstage: Improper URL validation in catalog entity placeholder resolution
An authenticated Backstage user could craft a catalog entity with placeholder directives that reference resources outside the entity's source repository. Under certain configurations, this could allow access to data not intended to be available to the user.
### Patches
Patched in `@bac…
@tinacms/web-components: `tina-markdown` writes rich-text link URLs into `href` without scheme validation, allowing stored XSS
`<tina-markdown>` renders a rich-text AST into the DOM and, for `a` nodes, assigns the node's URL straight to the anchor's `href` with no scheme check. A link authored in the CMS as `javascript:…` renders as a live `javascript:` anchor, so a visitor who clicks it executes attacker-sup…
CVE-2026-107303
JHipster: Generated Applications Allow Stored XSS via Unrestricted Blob ContentType Opened as Same-Origin Blob
Applications generated by generator-jhipster v9.2.0 can persist user-controlled Blob ContentType values and later use those values as the MIME type for client-side Blob objects. The shared generated `openFile` helper creates an object URL from the Blob and opens it in a new window.
For B…
CVE-2026-107295
Pydantic AI Web chat UI (`Agent.to_web()`, `clai web`): a website visited by the developer can trigger agent runs and server-side tool execution on the local chat endpoint
The Pydantic AI development web chat UI (`Agent.to_web()`, `clai web`) did not check the content type of requests to its chat endpoint. This allowed a website visited by a developer to submit a request to a chat UI running on that developer's machine, causing the served agent to run and…
CVE-2026-105076
Backstage: Improper preservation of access restrictions during service credential delegation
An external service credential configured with access restrictions (e.g., read-only) could bypass those restrictions by routing requests through plugin delegation paths. This could allow a restricted service to perform operations beyond its intended scope, including write operations on p…
CVE-2026-106196
CVE-2026-105628
CVE-2026-108553
Nginx UI: Unauthenticated signed-request body staging can exhaust temporary storage
In Nginx UI versions 2.5.0 through 2.5.x, the node-signature authentication path staged an attacker-controlled request body in a temporary file and synchronized it to disk before validating the body digest and cryptographic signature. An unauthenticated remote client that can reach the A…
ageLANServer: Unbounded JSON Array Allocation in AoE3 Cloud `getFileURL` Endpoint Leads to Remote Denial of Service
The AoE3 `POST /game/cloud/getFileURL` handler in `luskaner/ageLANServer`'s bundled game server decodes an attacker-controlled `names` JSON array and immediately allocates response storage sized directly from the array's length (`make(i.A, len(req.Names.Data))`), with no request body siz…
Vikunja: Link-share principal-type confusion enables cross-account team removal, bot takeover, and roster disclosure
Vikunja's `web.Auth` interface (`pkg/web/web.go`, single method `GetID() int64`) is satisfied by BOTH `*user.User` and `*models.LinkSharing`. A link-share's `GetID()` returns the **raw positive** `share.ID` (`pkg/models/link_sharing.go:83-85`), which lives in the same positive autoincreme…
yopass Prometheus metrics middleware allows remote memory exhaustion through unbounded method labels
pyLoad: Privilege revocation and password change through the REST API do not invalidate the user's session
pyLoad authorizes each request from values copied into the Flask session at login. set_session in webui/app/helpers.py writes role and per…
pyLoad: Api.set_user_permission never invalidates the target's session
An admin who revokes or downgrades a non-admin user's permissions through pyLoad's own documented
`/api/<func>` RPC surface — e.g. `POST /api/set_user_permission` (or its legacy alias
`/api/setUserPermission`) — updates the target's database row but never invalidates that user's
exis…
Nginx UI: Self-upgrade runs an unsigned binary verified only by a same-origin digest → RCE via a compromised mirror or MITM
The self-upgrade downloads the release binary and its checksum (`*.tar.gz` and `*.tar.gz.digest`)
through the SAME endpoint (`version.GetUrl()`, which is `github_proxy` or, by default, the project's
`cloud.nginxui.com` mirror), and verifies the binary ONLY by comparing it to that digest:
…
CVE-2026-107812
CVE-2026-107805
Strawberry GraphQL: Synchronous permission checks can treat an awaitable authorization result as truthy
`PermissionExtension.resolve()` evaluates the return value of `has_permission()` for truthiness on the synchronous path. `supports_sync` only classifies a permission as asynchronous when `has_permission` is declared with `async def` (via `inspect.iscoroutinefunction`), so a plain `def` …
CVE-2026-97076
Pydantic AI: Concurrency-limited models can keep their slot when a streamed request ends early
### Summary
Applications that wrap a model with `ConcurrencyLimitedModel` or `limit_model_concurrency` can permanently lose shared concurrency capacity when a streamed request releases its slot from a different task tha…
MariaDB Connector/Node.js exposes uninitialized process memory through malformed GeoJSON parameters
When encoding a GeoJSON Polygon or MultiPolygon parameter for the binary protocol, the connector sized its output buffer from the length property of each ring, then wrote each ring only if it was a real array. The two loops disagreed: any non-array ring carrying a numeric length (a s…
CVE-2026-107383
CVE-2026-107377
datamodel-code-generator: Protobuf weak-import path traversal allows files to be written outside the temporary directory
When processing an attacker-controlled Protobuf schema, vulnerable versions of
`datamodel-code-generator` could write a generated weak-import stub outside the
intended `__weak_imports__` temporary directory. Absolute import paths and relative
paths containing `..` could escape this direc…
Coraza JSON body processor: argument-limit truncation reopens an unbounded-depth gjson.Valid stack overflow (process crash)
The JSON body processor (`internal/bodyprocessors/json.go`) can be made to
crash the whole process with an unrecoverable `fatal error: stack overflow`,
using a request body that is well under the recommended `SecRequestBodyLimit`
and the default `SecArgumentsLimit`.
### Root cause
`re…
msgpack5: Truncated map32 headers throw an unexpected error
A truncated `map32` header causes an out-of-bounds buffer read and throws `RangeError` instead of `IncompleteBufferError`. Applications that rely on `IncompleteBufferError` to wait for additional bytes may terminate a request, stream, or worker unexpectedly. No adjacent memory is disclos…
msgpack5: Many buffered values can exhaust the streaming decoder stack
The streaming decoder recursively invokes itself for every complete value remaining in a chunk. A single chunk containing many small valid MessagePack values can exhaust the JavaScript call stack and interrupt the process or stream.
### Patches
The streaming decoder now drains concaten…
Excelize: Unbounded row number in Rows.Columns makes GetRows and the Rows iterator loop for days
A worksheet whose `<row r="…">` number is far past Excel's 1,048,576-row limit makes `File.GetRows` and the `Rows` iterator loop once for every missing row. The row limit is checked in `Rows.Next`, but not in `Rows.Columns`, which also reads `<row>` elements. A 1.5 KB file with `<row …
AsyncHttpClient: Unbounded WebSocket permessage-deflate decompression enables a decompression-bomb denial of service when compression is enabled
With WebSocket compression enabled, the client inflates `permessage-deflate` messages with no limit on the decompressed size. It installed Netty's shared `WebSocketClientCompressionHandler.INSTANCE`, whose inflater is unbounded, and `webSocketMaxFrameSize` and `webSocketMaxBufferSize` on…
Excelize Decrypt: unrecoverable panics on malformed OLE/CFB encrypted workbooks
Any file whose first 8 bytes are the OLE compound-file signature (`D0 CF 11 E0 A1 B1 1A E1`) is routed by `OpenFile`/`OpenReader`/`OpenBytes` → `openReaderAt` → `Decrypt`. The version dispatch only guarantees `len(EncryptionInfo) >= 4` before handing attacker-controlled `EncryptionI…
Excelize: extractPart allocates attacker-controlled, unbounded and negative-sized buffers from CFB directory entries: remote panic / OOM DoS
`extractPart` allocates directly from the mscfb directory-entry size with no clamping (`crypt.go:198`, same missing bound at `crypt.go:204`):
“`go
buf := make([]byte, entry.Size)
“`
`entry.Size` is the raw `streamSize` field from the attacker-controlled CFB directory entry (mscfb v1…
Excelize ANCHORARRAY: mutually-referencing array formulas recurse unboundedly via re-entrant CalcCellValue, causing a fatal stack overflow
`ANCHORARRAY` (calc.go:15137 on current master) evaluates each cell of the referenced spill range by calling the **exported** `CalcCellValue`, which unconditionally constructs a fresh `calcContext` — fresh entry marker, fresh iterations map, full `MaxCalcIterations` budget (calc.go:89…
CVE-2026-95208
CVE-2026-107286
CVE-2026-107574
CVE-2026-103649
PraisonAI: Prompt Injection Defense Bypassed for HIGH-Level Threats
Injection Defense is a purpose-built prompt injection defense layer. It scans LLM inputs through six detection categories: instruction overrides, authority claims, boundary manipulation, obfuscation, financial manipulation, and self-harm instructions.
The defense is misconfigured by def…
Docling has arbitrary file read/write (and command execution when shell-escape is enabled) when rendering untrusted TikZ with the opt-in Tectonic engine
When the LaTeX backend is configured to render TikZ pictures with the Tectonic engine (`LatexBackendOptions(tikz_engine="tectonic")`), the TikZ body and the document preamble from the input file are compiled by Tectonic without any restriction on TeX's file primitives. A crafted `.tex` …
Ghost: Invite Token Disclosure in Ghost Admin API
Staff users with permission to view staff invites were able to discover the secret token of pending invites, including invites for roles with higher privileges than their own. This could allow a staff user to escalate their privileges by accepting a pending invite.
### Vulnerable versio…
ImageSharp: TIFF CCITT T6 encoder writes beyond an undersized output buffer
The TIFF CCITT Group 4 (T6) encoder writes beyond its logical compressed-data buffer when encoding a 1-bit image. A valid 1×1 Group 4 TIFF decoded and re-encoded with the default `TiffEncoder` terminates the process with an unhandled exception.
### Affected package and versions
– Pac…
ImageSharp: ICC LUT16 output channel count can write beyond Vector4
When ICC conversion is enabled, a malformed embedded ICC LUT16 profile with
more than four output channels can corrupt memory during ImageSharp color
conversion. The ICC parser accepts up to 15 CLUT output channels, while the
conversion implementation stores intermediate values in `Vect…
ImageSharp: TIFF CCITT T4 encoder can write past its compressed output buffer
ImageSharp's TIFF CCITT Group 3 (T4) encoder can write beyond its allocated compressed-data buffer when encoding narrow 1-bit images. The unchecked writes can corrupt process memory and terminate the process.
This report concerns only the T4 `CcittGroup3Fax` encoder path. It replaces t…
ImageSharp: HistogramEqualization uses an unvalidated luminance as an unchecked histogram index
`SixLabors.ImageSharp` can terminate a process when an application decodes
an attacker-supplied 32-bit floating-point TIFF as `Image<HalfVector4>` and applies
`HistogramEqualization()`. An IEEE positive-infinity TIFF sample reaches a non-finite or otherwise out-of-range
`HalfVector4` co…
Excelize ColumnNameToNumber: int64 overflow yields an out-of-domain coordinate with nil error, causing negative slice index panic on r="0" rows
`ColumnNameToNumber` (lib.go:220-237) accumulates the bijective base-26 value of a column name in an int64 with only an upper-bound check (`col > MaxColumns`) applied after the loop and no overflow detection. A 14-letter column name whose true value is 3·2⁶⁴ — e.g. **`VGWQHXLSDVI…
Excelize: Unbounded spinCount in agile decryption burns CPU during OpenFile
mppx-condition-gate: Free-access path grants on a self-declared wallet without proving control
Both packages wrap an `mppx` payment method so that a wallet meeting on-chain conditions is granted free access instead of being charged.
The free-access path reads the payer address from `credential.source` — a client-supplied DID in the payment credential — asks InsumerAPI whether…
ImageSharp: Tiled fax TIFF: tile buffer sized by TileWidth but fax decompressor writes scanlines of ImageWidth — heap OOB write
When decoding a tiled TIFF with fax compression (T4/T6/MH), `DecodeTilesChunky` allocates each tile buffer from **TileWidth** (`ceil(TileWidth*bpp/8)*TileLength` bytes) but constructs the fax decompressor with **frame.Width**: `TiffDecompressorsFactory` ignores the `isTiled/tileWidth/til…
ImageSharp: CCITT fax decompression (T4/Modified Huffman): unbounded WriteBits overflows strip buffer — heap OOB write in SixLabors.ImageSharp
When decoding a fax-compressed strip TIFF (Compression=3 / Group 3 1D, or Compression=2 / Modified Huffman), the CCITT decompressors write decoded runs through `BitWriterUtils.WriteBits/WriteBit/WriteZeroBit`, which advance and write bits via `Unsafe.Add` with read-modify-write semantics…
CVE-2026-106056
CVE-2026-106550
CVE-2026-96399
CVE-2026-106122
CVE-2026-104850
CVE-2026-105791
CVE-2026-98257
rds: ib: use rds_conn_drop() on protocol version mismatch
rds_ib_cm_connect_complete() runs from the RDMA-CM event handler with
conn->c_cm_lock held. When the peer negotiates a protocol version
older than RDS_PROTOCOL_COMPAT_VERS…
CVE-2026-98175
smb: client: cancel reconnect work in clean_demultiplex_info()
clean_demultiplex_info() cancels server->echo delayed work but not
server->reconnect, which can cause a use-after-free when the
demultiplex thread exits while a reconn…
CVE-2026-98174
smb: client: fix rlist race and missing initialization
TCP_Server_Info.rlist is allocated via kzalloc which zeros both ->next
and ->prev to NULL instead of pointing to itself, making list_empty()
always return false and list_add()…
CVE-2026-98173
smb: client: fix use-after-free of iface in cifs_try_adding_channels()
cifs_try_adding_channels() iterates ses->iface_list with
list_for_each_entry_safe_from(), which captures the next entry
(niface) under iface_lock. The loop bo…
CVE-2026-105782
hickory-resolver: Resolver::lookup() and Resolver::lookup_ip() APIs obscure DNSSEC validation failures
CVE-2026-105675
CVE-2026-107720
fast-jwt: createVerifier accepts unsigned JWTs when key is '' or null and algorithms is explicitly set
`createVerifier` in fast-jwt ≤ 6.3.0 skips signature verification entirely when the `key` option is a falsy synchronous value (`''` or `null`) **and** the `algorithms` option is set to a non-empty allowlist. An attacker who can present a JWT to the application — regardless of algori…
fast-jwt treats raw public JWK JSON as an HMAC secret, enabling HS256 token forgery
`fast-jwt` 6.2.4 silently classifies raw serialized public JWK JSON
as an HMAC secret.
If an application supplies public JWK JSON text as the verifier key and
HS256 is explicitly allowed or automatically inferred, an attacker who
knows the same public JSON text can use it as an HMAC ke…
CVE-2026-107318
MariaDB Connector/Node.js: SQL injection in the text protocol when the session uses NO_BACKSLASH_ESCAPES
When escaping string and binary parameters for the text protocol, the connector always escaped the quote character with a backslash, without ever consulting the session's NO_BACKSLASH_ESCAPES SQL mode. The server status flag was declared (STATUS_NO_BACKSLASH_ESCAPES) but never read.
…
AsyncHttpClient: Pooled connections can still be shared across NTLM, Negotiate and proxy logins
The fix for GHSA-vvp4-63h8-v5pm in 3.0.13 folded the authenticated principal into the HTTP/1.1 connection pool key, so that a connection one principal authenticated with NTLM, Kerberos or SPNEGO is not handed to another. It left three cases out. In each, a socket that one identity authent…
CVE-2026-107584
CVE-2026-104704
PraisonAI: MCP HTTP-stream transport is unauthenticated by default, exposing tool enumeration and an unvalidated tool-call surface
PraisonAI's MCP HTTP-stream server authenticates requests only when an API key is configured; the CLI defaults `–api-key` to `None`, so `praisonai mcp serve –transport http-stream` exposes the full MCP surface unauthenticated. A request with no `Authorization` (and no `Origin`) can `in…
Ghost: Stored XSS via Embed Card Previews
Embed cards in the Ghost editor could be used to bypass the fix for GHSA-8vhf-xxpj-4qrg. Any staff user, including Contributors, could store scripts in post content that ran when another staff user opened the post in the editor, possibly resulting in compromise of that user's admin sessi…
Ghost: Stored XSS via SVG Uploads Bypassing Sanitization
SVG media thumbnails, and SVG images uploaded with a non-SVG file extension, were stored without sanitization. This allowed any staff user, including Contributors, to host scripts on the site's domain, possibly resulting in compromise of other staff users' admin sessions.
### Vulnerable…
Ghost: Stored XSS via Bookmark Card Images
When creating a bookmark card, Ghost could store non-image files fetched from an external website as bookmark icons or thumbnails. This allowed any staff user, including Contributors, to host arbitrary HTML on the site's domain, possibly resulting in compromise of other staff users' admi…
Ghost: Stored XSS via File Uploads on Local Storage
Ghost restricts the content type that uploaded files are served with, to prevent browsers from executing them. On sites using the default local storage adapter, this restriction was not applied, so files uploaded by any staff user were served with a content type derived from their file e…
PraisonAI: AgentMail webhook lacks signature verification, allowing unauthenticated message injection and sender spoofing
PraisonAI's AgentMail bot, when run in webhook (or hybrid) mode, starts an aiohttp webhook server bound to `0.0.0.0` and processes inbound `message.received` events **without verifying any signature/HMAC and without authentication**. The sender address and message body are taken directly…
CVE-2026-106189
CVE-2026-105679
CVE-2026-105651
CVE-2026-105649
CVE-2026-105392
. Remote exploitati…
CVE-2026-105643
PraisonAI: Jobs API is unauthenticated by default and allows attacker-controlled webhook SSRF
PraisonAI's Async Jobs API enables its API-key middleware **only when `PRAISONAI_JOBS_API_KEY` is set**, so by default every endpoint is unauthenticated. An unauthenticated `POST /api/v1/runs` accepts an attacker-controlled `webhook_url`; on job completion the server POSTs the job payloa…
Ghost: Remote Code Execution via Theme Translation Files
A vulnerability in how Ghost loads theme translation files allowed an authenticated Administrator to execute arbitrary code on the server via a crafted theme.
### Vulnerable versions
This vulnerability is present in Ghost from v6.10.3 up to v6.64.0.
### Patches
v6.64.0 contains a fix…
CVE-2026-107207
CVE-2026-89417
Coraza: Silent argument drop at ArgumentLimit allows bypass of ARGS-targeted rules via parameter flooding
File: `internal/corazawaf/transaction.go`, lines 770–808 (since commit 2fd87b89, PR #812, 2023-06-14)
“`go
func (tx *Transaction) AddGetRequestArgument(key string, value string) {
if tx.checkArgumentLimit(tx.variables.argsGet) {
tx.debugLogger.Warn().Msg("skipping get …
CVE-2026-105677
PraisonAI: Platform member PATCH routes allow owner resource rewrites and project lead reassignment delete bypass
## Summary
`praisonai-platform` lets an ordinary workspace member patch owner-created project, issue, and agent records even though the paired delete routes enforce owner/admin authorization. F…
CVE-2026-107362
CVE-2026-107611
CVE-2026-71895
Backstage: Improper repository path validation in a Scaffolder backend module
An authenticated user who can execute an affected template and control its repository file location may cause generated content to be written outside the task workspace, within locations writable by the Backstage backend process.
### Patches
Patched in `@backstage/plugin-scaffolder-bac…
Langflow: IP Spoofing Bypass via `X-Forwarded-For` Allowing Remote Configuration Write
### Summary
An IP spoofing vulnerability in the Model Context Protocol (MCP) configuration installation endpoint (`POST /api/v1/mcp/project/{project_id}/install`) allowed authenticated remote attackers to bypass the "local-only" access restriction. By sending a spoofed `X-Forwarded-…
wger: Trainer Privilege Escalation – Improper Privilege Management
A user with only the `gym_trainer` permission can deactivate any account in the same gym, including `gym_manager` and `general_gym_manager` accounts. The `UserDeactivateView` grants access to anyone holding **any one** of `gym.manage_gym`, `gym.manage_gyms`, or `gym.gym_trainer` (OR log…
wger: cross-tenant admin notes/contracts leak via gym=None bypass (5 views)
Five gym management views in wger apply a flawed gym-scope guard (`gym_a != gym_b`) that silently passes when both operands are `None`. A trainer with `gym.gym_trainer` and `gym.add_adminusernote` permissions and no gym assignment (`gym=None`) can read private admin notes, uploaded docu…
CVE-2026-106188
CVE-2026-106103
CVE-2026-26287
External Secrets Operator: label enforcement bypass in webhook generator enables secret exfiltration
A bug in the `webhook` generator initialization order incorrectly cleared the label-enforcement flag (`EnforceLabels`) after it was set, resulting in the provider-side check for `external-secrets.io/type=webhook` being skipped (and the operation to succeed while it should have failed with…
CVE-2026-98349
wifi: libipw: reject too-short beacon and probe responses
libipw_process_probe_response() and the libipw_network_init() call it
makes assume the frame contains the full 36-byte beacon and probe
response prefix, but the ipw2100 and…
CVE-2026-98348
wifi: libipw: reject too-short association responses
libipw_handle_assoc_resp() reads the capability, status and aid fields
of the 30-byte association response prefix and then computes the
information element length as
stats->le…
CVE-2026-98180
drm/msm: RCU-free the scheduler-containing ring and VM objects
Both struct msm_ringbuffer and struct msm_gem_vm embed a struct
drm_gpu_scheduler. msm_ringbuffer_destroy() and the VM free callback
msm_gem_vm_free() call drm_sched_…
CVE-2026-98169
smb: client: fix potential OOB read in smb3_enum_snapshots()
If snapshot_array_size is smaller than GMT_TOKEN_SIZE,
smb3_enum_snapshots() sets ret_data_len to
sizeof(struct smb_snapshot_array) without verifying the actual length
o…
CVE-2026-102282
CVE-2026-84854
CVE-2026-98331
wifi: mac80211: unlist vifs when their netdev is unregistered
mac80211 only removes vifs from the local->interfaces list when
an interface is removed via ieee80211_if_remove(), before it
unregisters the netdev. However, it's possi…
CVE-2026-98230
xfrm: use hlist_del_init_rcu for state_cache and state_cache_input
Commit 14acf9652e56 ("xfrm: defensively unhash xfrm_state lists in
__xfrm_state_delete") converted bydst/bysrc/byseq/byspi from
hlist_del_rcu() to hlist_del_init_r…
CVE-2026-98197
hwmon: (w83791d) remove fan/pwm 4-5 sysfs group on remove
When the fan/pwm 4-5 pins are not used as GPIO, w83791d_probe()
creates the w83791d_group_fanpwm45 sysfs group on the I2C client
device.
The probe error path removes this …
Next.js has Server-Side Request Forgery in Image Optimization
An attacker-controlled, allow-listed remote URL can lead to server-side request forgery (e.g. to private IPs) during Image Optimization.
## Workaround
Audit allow-listed remote URLs in `images.remotePatterns` (see https://nextjs.org/docs/app/getting-started/images#remote-images) for ho…
PyMongo: PYTHON-5986 Host injection in PyMongo connection string parsing via percent-encoded delimiters
PyMongo percent-decoded the entire host section of a connection string before splitting it into individual `host:port` entries. A percent-encoded `,` or `:` in a hostname therefore decoded into a real delimiter, injecting an additional attacker-chosen host and port into the client's see…
Vikunja: Permissive Cross-domain Security Policy trusts every localhost origin which should not be trusted
Vikunja ships with `cors.origins` defaulting to `http://127.0.0.1:*` and `http://localhost:*`, and sends `Access-Control-Allow-Credentials: true`, so a page served from any port on the user's own machine may make credentialed cross-origin requests to the API and read the responses. The m…
Vikunja: Planka migration retains an unbounded aggregate of attacker-served attachments and can OOM the API
## Summary
The always-registered Planka migration lets any ordinary user select a Planka server. Although Vikunja caps each JSON response, pagination loop, and attachment independently, it has no a…
Vikunja: Unbounded CSV row cardinality permits API process termination
## Summary
The authenticated v2 CSV migration route caps upload bytes but not parsed row cardinality. It reads every record into a [][]string and then materializes a full task object for every row before insertion. Two million one-cel…
Vikunja: Unbounded nested task-filter recursion permits API process termination
## Summary
Authenticated task-list routes accept a filter expression without a length or nesting-depth bound, preprocess it, parse it recursively through fexpr, and recursively convert the resulting expression tree. A syntact…
Vikunja: Denial of service via decompression bomb in the data import
Vikunja lets you export your data as a zip and import it back. The import doesn't limit how large the archive expands to, how many files it contains, or how much storage one user can consume, and it appears to hold the whole archive in memory while processing it. Because the archive is c…
Vikunja: Unbounded image decode on avatar and project-background uploads enables decode/resize amplification
The 50-megapixel decode guard exists only on the task-attachment preview path. Avatar and project-background uploads decode uploaded images with no pixel cap. Worse, the avatar resize fixes the output height at 1024 and derives the width from the aspect ratio, so a tiny extreme-aspect-ra…
Vikunja: Read-only project members can obtain any link share's access hash via the single-share read endpoint (v1 and v2) and escalate to the share's permission level
A user who has only read permission on a project can call the single link-share read endpoint and receive the share's `hash` field — the secret credential that the anonymous `POST /shares/{share}/auth` endpoint exchanges for a link-share JWT carrying the share's permission (read / read…
Vikunja: Every /api/v2 pre-auth endpoint is unthrottled on a stock install while its /api/v1 twin is rate limited
`registerAPIRoutesV2` never applies the unconditional pre-auth rate-limit floor (`unauthRateLimit()`) to the v2 public routes — it passes that limiter only to `/api/v2/ws` — and otherwise relies on `setupRateLimit`, which registers nothing when `ratelimit.enabled` is false (the defau…
Vikunja: OIDC email-fallback account linking ignores email_verified, enabling local-account takeover
With the per-provider OIDC `emailfallback` option enabled, Vikunja links an SSO login to a pre-existing **local** (username+password) account using only the `email` claim — no `email_verified` (or Microsoft `xms_edov`) check and no password check, on the unauthenticated callback. An at…
pyLoad: Tar extraction creates device nodes and FIFOs (member types not filtered; tarfile extractall without filter=)
`UnTar._safe_extractall` — the hardening added for GHSA-mvwx-582f-56r7 — validates member
**names** and symlink/hardlink **targets**, but never checks member **types**, and calls
`tarfile.extractall` without a `filter=`. On Python < 3.14 the default extraction filter is
`fully_trust…
Hazelcast has an authorization bypass in IMap Predicates API
Missing authorization checks in the [Predicates API](https://docs.hazelcast.com/hazelcast/5.7/query/predicate-overview) may allow a malicious client to execute arbitrary code on a Hazelcast member.
### Patches
Enterprise customers should upgrade to a fixed version of Hazelcast Enterpri…
PraisonAI: SecurityPolicy command/path/import restrictions are completely unenforced by the default SubprocessSandbox backend
SecurityPolicy in praisonaiagents/sandbox/config.py is a documented configuration data class with fields for allow_subprocess, allowed_paths, blocked_paths, allowed_commands, blocked_commands, allowed_imports, and blocked_imports. Its strict() classmethod is explicitly described as creating …
CairoSVG: Quadratic-time DoS parsing a crafted SVG <path>
Rendering an untrusted SVG whose `<path d="…">` contains many segments is O(n²) CPU. A single `<path>` under 1 MiB burns tens of seconds. Two independent O(n²) sites in `cairosvg/path.py`:
1. **Tokenizer** — the path-data parser consumes the `d` string with a `while string:` loop …
Excelize: Unchecked pivot-cache field index in extractPivotTableFields causes unrecoverable panic
extractPivotTableFields builds `order := pc.getPivotCacheFieldsName()` from xl/pivotCache/pivotCacheDefinitionN.xml's <cacheFields> list, then indexes it with values taken from a *separately parsed* xl/pivotTables/pivotTableN.xml part with zero cross-validation: `order[field.Fld]` where…
Excelize: Nil-pointer dereference in GetSlicers when a worksheet has extLst present but no drawing element
GetSlicers guards only `if ws.ExtLst == nil { return }` (slicer.go:816-818) and then immediately dereferences `ws.Drawing.RID` with no nil check on ws.Drawing itself. `Drawing` and `ExtLst` are two independently optional child elements of <worksheet> in xl/worksheets/sheetN.xml, populat…
AsyncHttpClient: Digest challenge without a usable nonce downgrades to Basic and sends the password in cleartext
A Digest challenge that does not yield a usable nonce is treated as a Basic challenge. The client then answers it with `Authorization: Basic`, which carries the username and password base64 encoded and so recoverable by anyone who sees the request.
Any of these is enough, sent by whoever…
yawkat LZ4 Java: Native library extraction to a shared temporary directory is vulnerable to file replacement by another local user
When no system-installed `liblz4-java` is found, `net.jpountz.util.Native.load()` extracts the bundled native library to `java.io.tmpdir` and loads it with `System.load`. The path of the extracted library can be predicted before it is created, and the library file is opened without excl…
Langflow has Authenticated Cross-Project File Disclosure via Unscoped MCP Resource Handlers
Langflow's project-scoped MCP transport authenticates the caller for the `project_id` in the connection URL, but the subsequent `resources/read` operation does not authorize the resource URI being requested. An authenticated user can connect to their own project-scoped MCP endpoint and s…
Payload: SQL injection in SQLite/Postgres
An attacker who has read plus create or update access to a collection can submit a request that includes a SQL injection targeting a specific field path shape and operators in Payload's SQLite and Postgres.
#### You are affected if:
– You use `@payloadcms/db-sqlite` or `@payloadcms/db-…
Payload has a tenant authorization bypass in Multi-Tenant Plugin
When using the default tenant array field access, an authenticated user could assign themselves to other tenants.
**You are affected if:**
– You are using `@payloadcms/plugin-multi-tenant`
If you configure the tenants arrayFieldAccess.create/update functions, a secured replacement memb…
Payload external upload trust validation issue
Under certain external upload configurations, Payload could send authentication data to a destination that was not verified as trusted. If the affected request contained a valid session, this could expose that session to an unintended recipient.
**You are affected if:**
– You have enabl…
Payload: Client uploads could overwrite S3 objects
An authenticated user could overwrite an existing S3 object belonging to another upload collection, bypassing that collection’s access controls and prior file validation.
You are affected if ALL of these are true:
– Client uploads are enabled for multiple collections that share an S3 b…
Payload: Uploaded XML files could execute same-origin JavaScript
Under certain local upload configurations, an uploaded XML file and stylesheet could execute JavaScript in the Payload origin when a logged-in user opens the file.
You are affected if:
– You accept XML uploads (accepted by default).
### Patches
Users should upgrade Payload packages to `…
Hydra: Mutable instantiate policy sets allow target blocklist bypass
Hydra's legacy `instantiate()` target blocklists and related execution-policy
collections are stored in mutable module-level state. Because `_locate()` can
resolve attributes on imported objects, a configuration can resolve a mutation
method such as `.discard()`, modify the active policy…
Excelize: Unbounded <col max> attribute is loaded with no MaxColumns check and expanded per-column by flatCols(), so any column mutator hangs or OOMs the process
The `max` attribute of a `<col>` element in `xl/worksheets/sheetN.xml` is read verbatim on open with no check against `MaxColumns`, and `flatCols()` then walks `Min..Max` doing a `deepcopy.Copy` and `append` per iteration. Executed: `max="300000"`, only about 18x past the real 16384 lim…
openapi-python-client: Malicious OpenAPI Documents can cause Arbitrary Code Generation
A malicious OpenAPI document processed by any `openapi-python-client` prior to 0.29.1 can generate arbitrary Python code. When anyone imports the malicious client, that arbitrary Python code will execute.
### Patches
Versions starting with 0.29.1 have updated with guardrails to prevent a…
hickory-resolver: Unbounded TC-retry loop in `NameServerPool::try_send` (resource-exhaustion DoS)
Indico: Incomplete Server-Side Request Forgery (SSRF) check
Indico makes outgoing requests to user-provides URLs in various places. This is mostly intentional and part of Indico's functionality, but of course it is never intended to let you access "special" targets such as localhost or cloud metadata endpoints. The previous fix (CVE-2026-25738) di…
Mechanize sends credential headers to another origin after a meta refresh
`mechanize` applied no trust boundary to a `meta` refresh, so credentials set through `Mechanize#request_headers=` followed a refresh that pointed at another origin.
## Details
`Mechanize::HTTP::Agent#response_follow_meta_refresh` fetched the refresh target with no notion of a crossed …
Mechanize sends credential headers to another host after an HTTP redirect
`mechanize` leaked credentials to the redirect target when an HTTP redirect crossed to another host. Credentials set through `Mechanize#request_headers=` leaked even when they were `Authorization`.
## Details
Two defects, both in `lib/mechanize/http/agent.rb`.
**1. `Mechanize#request_…
AsyncHttpClient CookieStore Silently Overrides Caller's Explicit Cookie Header via setHeader (Bypass of CVE-2024-53990 Fix)
With the cookie store enabled, which is the default, a `Cookie` header that the caller sets on a request with `setHeader` or `addHeader` is thrown away whenever the store holds any cookie for the request's origin: the request's cookie list is written into that header afterwards and repla…
AsyncHttpClient: Cookies received over plaintext HTTP can plant, overwrite or delete Secure cookies set over HTTPS
The cookie store ignores the scheme a `Set-Cookie` arrived on. draft-ietf-httpbis-rfc6265bis-22 (approved to obsolete RFC 6265, in the RFC Editor queue) Section 5.7 requires a user agent to ignore a cookie with the `Secure` attribute unless it arrived over a secure connection (step 13), a…
Pydantic AI: SSRF cloud-metadata blocklist bypass via IPv6 zone identifiers
When an application using Pydantic AI opts a URL into local network access — either a `FileUrl` with `force_download='allow-local'`, or `web_fetch_tool(allow_local_urls=True)` — the cloud-metadata blocklist could be bypassed by appending an IPv6 zone identifier to a metadata address…
CVE-2026-107289
Ghost : Stored XSS via SVG Files in Content Imports
SVG images included in content imports were stored without sanitization. An attacker who convinced an Administrator to import a crafted file could host scripts on the site's domain, possibly resulting in compromise of staff users' admin sessions.
### Vulnerable versions
This vulnerabil…
Backstage: Insufficient audience validation in the Cloudflare Access auth provider
The Cloudflare Access auth provider verifies a token's signature and team issuer, but affected versions do not verify that the token was issued for the Backstage application. A user holding a valid token for another Access application in the same Cloudflare Zero Trust team may therefore …
Backstage: Explicit negative email verification can be ignored during shared OAuth profile normalization
Several Passport-based authentication providers use shared OAuth profile normalization from `@backstage/plugin-auth-node`. Affected versions may pass an email to email-based sign-in resolvers even when verification metadata supplied for that same address is explicitly negative. The ID-to…
CVE-2026-107176
CVE-2026-107162
CVE-2026-106460
CVE-2026-105485
CVE-2026-105644
CVE-2026-107578
Docling imports plugin entry points before the allow_external_plugins check
`allow_external_plugins=False` (the default, and the CLI default) is meant to restrict docling to its own model plugins. However, docling's plugin factories call pluggy's `load_setuptools_entrypoints()`, which imports every module registered under docling's plugin entry-point group. Onl…
CVE-2026-77804
CVE-2026-108581
Vikunja: Webhooks and link shares survive every revocation path, so a removed collaborator keeps a live feed
A collaborator removed from a project keeps a **live, automatic feed** of that project's contents, because nothing on any revocation path deletes the webhook they created while they had access.
Vikunja already has a revocation-cleanup routine that deletes other derived rows for exactly …
Vikunja: WebSocket authentication ignores server-side session state, so revoked sessions keep receiving live pushes
Vikunja v2.6.0 introduced server-side sessions with revocation semantics: `DELETE /api/v2/user/sessions/{id}` documents "Revokes a specific session by its UUID", and enabling TOTP calls `DeleteAllUserSessions` to invalidate all sessions. The WebSocket endpoint accepts any cryptographica…
CVE-2026-48484
pyLoad: Lack of Input Size Validation Leads to Denial of Service (DoS) and Process Termination
The API `rpc` function in `api_blueprint.py` handles `multipart/form-data` uploads by reading the whole content of the uploaded file into memory with `file.read()`. This occurs before the data is sent to the underlying function. Since there is no size limit set at this point, a large…
CVE-2026-107828
CVE-2026-104628
Banks: User-controlled prompt input can be parsed as privileged chat messages
Banks' `Prompt.chat_messages()` method parses every rendered output line as a potential `ChatMessage` JSON
object. If attacker-controlled template data renders to JSON such as `{"role":"system","content":"…"}`,
Banks returns it as a privileged `system` message instead of treating…
PraisonAI: Platform members can rewrite shared labels and owner issue labels without owner/admin authorization
## Summary
`praisonai-platform` lets an ordinary workspace member rename and recolor shared labels and add/remove labels on an owner-created issue even though direct label deletion is restricted t…
CVE-2026-107336
CVE-2026-107335
Pydantic AI: Excessive resource use when local web fetching converts nested HTML
Applications using Pydantic AI's local web-fetch tool can experience excessive CPU and memory use when it converts attacker-controlled HTML. An agent must fetch the affected page; provider-native web fetching is not affected.
### Details
Nested block elements cause HTML-to-Markdown co…
msgpack5: Partial options disable prototype protection
Passing an empty or partial options object disables the default `protoAction: 'error'` protection. A map containing a `__proto__` key can then replace the prototype of the decoded object, potentially changing inherited properties or causing unexpected behavior in downstream code.
Only t…
CVE-2026-107294
CVE-2026-107290
Pydantic AI: Unbounded memory use when downloading remote content via web_fetch or FileUrl
Several remote-content download paths in Pydantic AI buffered the entire HTTP response body into memory before enforcing any size limit. An application that exposes the local web-fetch tool (`web_fetch_tool`, or the `WebFetch` capability's local fallback) to untrusted prompts can be dri…
Pydantic AI: Event loop blocked by quadratic title extraction in `web_fetch`
The local web-fetch tool (`web_fetch_tool`, also used as the `WebFetch` capability's local fallback) processed responses with several steps whose running time grows quadratically with the size of certain server-controlled inputs, and ran them on the event loop: decoding the body with wh…
CVE-2026-107287
CVE-2026-103011
CVE-2026-76271
Docling: Unbounded table rowspan/colspan in HTML, JATS, ODS and BoxNote backends causes CPU/memory exhaustion
The HTML, JATS, ODS (OpenDocument spreadsheet) and BoxNote backends accept table `rowspan` / `colspan` values without an upper bound. A few bytes of input, such as `<td rowspan="100000000">`, make docling run loops proportional to the declared span and allocate a table grid of the decla…
Backstage: Inconsistent repository filtering in Bitbucket Server catalog event updates
Deployments using event-driven updates in the Bitbucket Server catalog provider may ingest catalog locations from repositories that are excluded by the provider's configured project, repository, or archived-repository filters.
An authenticated Bitbucket Server user who can push to a fil…
Excelize: Panic in cellInRange on a worksheet with an empty mergeCell ref
A worksheet containing `<mergeCell ref=""/>` makes `mergeCellsParser` leave the cached rectangle empty, and `cellInRange` then indexes that empty slice without a length check. Every non-streaming cell API panics with `index out of range [0] with length 0` on the first cell read after op…
Excelize: a row whose earlier cell has a higher column reference than its last cell panics index out of range on almost every worksheet read API
– Confirmed at `ae2113b` (current HEAD).
– Sink: `rows.go:967` `ws.SheetData.Row[rowIdx].C[colNum-1] = *colData` inside `checkRow`.
– `checkRow` computes `lastCol` from the column of the last cell in document order (`rows.go:940`), allocates `targetList`…
Excelize: GetConditionalFormats indexes conditional-formatting rule sub-elements with no length or nil check
`GetConditionalFormats` reads sub-elements of a `<cfRule>` straight out of `xl/worksheets/sheetN.xml` and indexes them without checking length, and in one case without checking for nil. Three rule types are affected: `cellIs`, `dataBar` and `colorScale`. A workbook with a rule that is mi…
Excelize: A Zip64 uncompressed-size of 2^63 panics OpenFile/OpenReader
A Zip64 uncompressed-size of 2^63 casts to a negative int64 that bypasses the unzip-size guard and reaches make([]byte, 0, negativeCap)
A Zip64 uncompressed-size in the range [2^63, 2^64) casts to a negative `int64` in `zip.File.FileInfo().Size()`, and `ReadZipReader` does signed arith…
Excelize: GetStyle panics on a negative fillId, borderId or fontId in styles.xml
`File.GetStyle` indexes the fill, border and font tables with values taken straight out of `xl/styles.xml`, and the conditions gating those lookups check only the upper bound. A workbook whose `cellXfs` entry carries `fillId="-1"`, `borderId="-1"` or `fontId="-1"` reaches a negative slic…
Ghost: Authorization Issue Allowed Author Role to Delete any Post
Staff with the Author role could delete posts and pages that they did not author.
### Vulnerable versions
This vulnerability is present in Ghost from v5.81.0 up to v6.60.0.
### Patches
v6.60.0 contains a fix for this issue.
### How to update
For self-hosters using Docker, find [Doc…
Backstage: Improper authorization enforcement for TechDocs static content
An authenticated user with access to one TechDocs documentation site could craft a URL able to read documentation belonging to a different entity. This only affects deployments using the external TechDocs builder with an external storage provider (S3, GCS, etc.) and the permission framew…
Backstage: Improper input validation in TechDocs static content requests
When using the Azure Blob Storage provider, an authenticated Backstage user may be able to read restricted TechDocs content when entity-level permissions are enabled. Deployments that intentionally disable the default backend authentication policy may have broader exposure.
### Patches
…
PraisonAI: Platform members can delete owner issue dependencies through member-owned related issues
## Summary
`praisonai-platform` issue dependency deletion can be authorized against the wrong side of a dependency edge. A workspace member cannot delete a dependency through the owner-created issue endpoint…
wger: Cross-User Data Corruption via Missing Ownership Check on WorkoutLog.slot_entry
An authenticated attacker can inject arbitrary workout log entries into any other user's `SlotEntry` by supplying the victim's `slot_entry` ID in a `POST /api/v2/workoutlog/` request. The `slot_entry` foreign key is not included in the ownership verification performed by `WorkoutLogView…
CVE-2026-104391
CVE-2026-106585
CVE-2026-79815
CVE-2026-103008
CVE-2026-103006
CVE-2026-103005
CVE-2026-102411
CVE-2026-102409
CVE-2026-102404
CVE-2026-106185
vLLM: Mirrored multimodal IPC caches desync after a rejected request — a later request reusing the same media hash trips a receiver assertion in the engine core
– **Ecosystem / package:** pip / `vllm`
– **Affected versions:** vLLM ≤ 0.25.1 (confirmed on 0.25.1, commit [`752a3a504485`](https://github.com/vllm-project/vllm/tree/752a3a504485790a2e8491cacbb35c137339ad34)). The lower bound predates 0.25.1; maintainers can confirm how far back the …
PyJWT accepts inconsistent OKP x/d JWKs, causing public/private key identity confusion
PyJWT accepts internally inconsistent OKP private JWKs where the declared public key `x` does not correspond to the supplied private key `d`.
When `d` is present, `OKPAlgorithm.from_jwk()` constructs the Ed25519/Ed448 private key from `d` without verifying that the public key derived f…
vLLM: Scale-out disaggregated multimodal transport trusts caller-supplied features
– **Ecosystem / package:** pip / `vllm`
– **Affected versions:** vLLM ≤ 0.25.1 (confirmed on 0.25.1, commit [`752a3a504485`](https://github.com/vllm-project/vllm/tree/752a3a504485790a2e8491cacbb35c137339ad34)). The lower bound predates 0.25.1; maintainers can confirm how far back the …
vLLM: Structured-output request errors escape the request boundary and terminate the shared EngineCore — engine-fatal denial of service (3 sites)
– **Ecosystem / package:** pip / `vllm`
– **Affected versions:** vLLM ≤ 0.25.1 (confirmed on 0.25.1, commit [`752a3a504485`](https://github.com/vllm-project/vllm/tree/752a3a504485790a2e8491cacbb35c137339ad34)). The lower bound predates 0.25.1; maintainers can confirm how far back each…
vLLM: Loose `cache_salt` validation lets a single request kill EngineCore on LMCache-MP deployments — uncaught downstream `ValueError` denial of service
– **Ecosystem / package:** pip / `vllm`
– **Affected versions:** vLLM ≤ 0.25.1 (confirmed on 0.25.1, commit [`752a3a504485`](https://github.com/vllm-project/vllm/tree/752a3a504485790a2e8491cacbb35c137339ad34)). The lower bound predates 0.25.1; maintainers can confirm how far back the …
CVE-2026-105757
Snowflake drivers writes sensitive information to logs
CVE-2026-105681
CVE-2026-105680
pyLoad WindowsPhoneNotify addon: non-admin SETTINGS user triggers SSRF via unguarded http.client notification host
pyLoad ships the WindowsPhoneNotify addon, whose `send()` method opens an HTTP connection to a host taken directly from the plugin's `pushurl` configuration value. A user holding the standard non-admin `SETTINGS` permission can set `pushurl` and `pushid` and enable the addon through the …
CVE-2026-107292
Pydantic AI Web chat UI (`Agent.to_web()`, `clai web`): the local chat endpoint does not validate the `Host` header
The Pydantic AI development web chat UI (`Agent.to_web()`, `clai web`) does not validate the `Host` header of incoming requests. A website a developer visits can use DNS rebinding to make requests to a chat UI running on that developer's machine appear same-origin to the browser, causin…
Backstage's scaffolder credential handling may allow unintended GitHub authentication fallback
Scaffolder actions that interact with source control systems may not consistently enforce the intended credential boundaries under certain configurations. An authenticated user could perform operations with broader access than intended.
### Patches
– `@backstage/plugin-scaffolder-backe…
Backstage: Improper input validation in proxy-backend
An authenticated Backstage user could craft a request URL that causes the proxy-backend to forward the request to a path outside the configured base path on the target server. This is limited to target servers already configured as proxy endpoints and requires Backstage authentication by…
CVE-2026-108816
CVE-2026-108785
Backstage: Improper input validation in Confluence to Markdown scaffolder module
Insufficient input validation in the Confluence to Markdown scaffolder module could allow an attacker to influence file write operations during template execution. Exploitation requires a Backstage user to run a template that processes attacker-influenced Confluence content.
### Patches…
CVE-2026-77802
music-metadata: MP4 stsd sample-entry size==0 causes a synchronous infinite loop (DoS) — unreleased regression on master
`StsdAtom.get()` in `lib/mp4/AtomToken.ts` parses an MP4 `stsd` (sample description) box's entry table by advancing a cursor with `off += size – 4`, where `size` is a 32-bit, attacker-controlled per-entry length read straight from the file. When `size == 0`, that advance is `0`, so a fi…
music-metadata: Uncontrolled memory allocation in APEv2 parser
`music-metadata` 11.15.0 is vulnerable to uncontrolled memory allocation in the APEv2 parser.
The parser reads the size of an APEv2 tag item from the input file and uses that value to allocate memory before checking whether the file actually contains that many bytes. A small crafted `.a…
music-metadata: ID3v2 tag size not validated before allocation, causing memory exhaustion DoS
The ID3v2 parser in music-metadata trusts the tag size field without validation and allocates the full requested buffer before reading. A specially crafted MP3 file with a truncated ID3v2 tag can force allocation of up to 268 MB from a 10-byte file, causing server memory exhaustion. Thi…
music-metadata: EBML parser trusts element lengths, allowing memory exhaustion or process abort
The Matroska/WebM EBML parser decodes attacker-controlled variable-length integer (VINT) element lengths without first validating that the declared element fits within its enclosing container or the available input. Leaf lengths are then used directly for string-token and `Uint8Array` al…
music-metadata: uncatchable process crash parsing a crafted `.dsf` (residual of GHSA-v6c2-xwv6-8xf7)
`DsfParser.parseChunks` skips an unrecognised chunk's payload with an **un-awaited** call:
“`js
this.tokenizer.ignore(Number(chunkHeader.size) – ChunkHeader.len); // lib/dsf/DsfParser.js:51 — no await
“`
`ChunkHeader.len` is 12. A crafted `.dsf` chunk with `id != 'fmt '` and `size` …
CVE-2026-102413
CVE-2026-107718
AdonisJS: Unencoded route parameters can produce open redirects
When an application passes untrusted input to a route whose first path segment is dynamic, a value beginning with / can produce a scheme-relative URL. For example:
“`ts
router.get('/:page', handler).as('pages.show')
response…
PraisonAI: Human-in-the-loop tool approval is cached by tool name and silently reused for all subsequent calls with arbitrary arguments
PraisonAI gates dangerous tools (file writes, deletes, shell/code execution) behind an interactive approval prompt. The first approval of a tool is cached for the remainder of the run and silently reused for all later invocations of that tool with arbitrary, unreviewed arguments.
## Roo…
CVE-2026-107614
CVE-2026-107819
fast-jwt clockTolerance: Infinity silently bypasses both exp and nbf validation (and persists in the verifier cache)
`createVerifier({ clockTolerance: Infinity })` silently bypasses both `exp` (expiry) AND `nbf` (not-before) validation. Any expired or not-yet-active token is accepted as valid. The same primitive also corrupts the verifier's internal cache so cached entries inherit infinite validity —…
MariaDB Connector/Node.js: Uncaught exception crashes the client during ed25519 authentication with zero-configuration TLS
On the zero-configuration TLS path, the connector accepts a self-signed server certificate at the TLS level and then validates the server's identity from the fingerprint hash the server appends to the final OK_Packet (`Authentication.validateFingerPrint`). That validation calls `hash…
CVE-2026-107382
Coraza: Unbounded recursion in JSON response body processor causes CPU exhaustion
The JSON response body processor parses response bodies with no recursion
limit. `ProcessResponse` calls `readJSON(ss, ignoreJSONRecursionLimit)`, and
that constant is `-1`. The guard in `readItems` only fires on `== 0`, so
counting down from `-1` (-2, -3, …) never reaches it. The gua…
msgpack5: Reserved byte can cause unbounded stream buffering
The reserved MessagePack byte `0xc1` is incorrectly treated as incomplete input. When it appears at the start of a decoder stream, all subsequent data is retained while the decoder waits for bytes that can never make the value valid, allowing memory exhaustion.
### Patches
The decoder …
msgpack5: Quadratic parsing in the streaming decoder
The streaming decoder reparses an incomplete container from the beginning whenever another chunk arrives. A remote peer can split one valid MessagePack value across many small chunks, causing quadratic CPU usage and blocking the event loop.
### Patches
The decoder now preserves increme…
AsyncHttpClient: WebSocket proxy credentials sent to the origin server over a CONNECT tunnel
When a ws:// request is routed through an HTTP proxy with proxy authentication configured, the client tunnels the connection with an HTTP CONNECT, the same as it does for https://. Once the tunnel is open, the WebSocket upgrade request that follows is sent through the tunnel directly to t…
CVE-2026-107613
CVE-2026-86826
ImageSharp: EXR ZIP decoder can expose stale allocator data after a short inflate
A crafted ZIP-compressed OpenEXR image can return stale memory from a prior
ImageSharp operation as decoded pixels. The ZIP decoder accepts a non-empty
inflate result shorter than the EXR block's required size, then the EXR decoder
reads the full expected block.
This is a process-local,…
CVE-2026-107177
CVE-2026-106183
Docling: `enable_local_fetch` is not enforced in HTML browser-rendering mode
When the HTML backend renders pages in a headless browser (`HTMLBackendOptions(render_page=True)`), the `enable_local_fetch` option is not enforced. A crafted HTML file can embed an arbitrary local file (for example with `<iframe src="file:///…">`), and that file's contents appear in …
Coraza: URL-encoded form Content-Type parameters bypass Coraza body inspection
Coraza fails to inspect URL-encoded form bodies when their valid `Content-Type` contains a media-type parameter, for example:
“`http
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
“`
An unauthenticated attacker can use this header to hide the complete form body from …
Coraza: jsDecode Off-by-One in Octal Escape Handling Enables WAF Bypass
The `t:jsDecode` transformation in Coraza WAF contains an off-by-one error when parsing octal escape sequences. A backslash character was incorrectly included in the octal number buffer, causing `strconv.ParseInt` to fail for every octal escape sequence and return a null byte instead of …
Coraza body processor has a JSON key collision that allows unauthenticated attackers to bypass OWASP CRS inspection
Coraza's JSON body processor converts nested JSON properties into dot-separated `ARGS_POST` names without escaping dots contained in literal property names. Two distinct JSON properties can therefore collapse into the same Coraza variable
An unauthenticated attacker can place a malicio…
Coraza: Truncated multipart body bypasses MULTIPART_STRICT_ERROR (rule 200003) via silent io.ErrUnexpectedEOF handling
File: `internal/bodyprocessors/multipart.go` (since commit `3347961b`, PR #1453 *"feat: ignore unexpected EOF in MIME multipart request body processor"*, merged 2026-03-06, first shipped in `v3.4.0`).
The multipart body processor treats `io.ErrUnexpectedEOF` as a benign condition. Th…
Coraza: Native audit-log format allows CRLF injection and log forgery via request body and header fields
File: `internal/auditlog/formats.go` — multiple sites write attacker-influenced bytes into the Native audit-log stream without escaping `\r` or `\n`:
“`go
// Part B — request headers (lines 72–80)
for k, vv := range al.Transaction().Request().Headers() {
for _, v := range …
pacioli: A submit consent marker licensed cancellation of caller-named pre-existing documents
`pacioli-guard`'s document-layer consent gate requires a human-minted, single-use, document-bound and **act-bound** marker before a credential carrying `API Key Scope.require_consent` may submit or cancel a document. Because ERPNext performs further document writes as a consequence of a …
PraisonAI: FastContext path resolution permits absolute and traversal reads outside the workspace
## Summary
PraisonAI's `praisonaiagents.context.fast` FastContext feature treats `workspace_path` as the root directory for code search, but its model-facing search tools and high-level `read_context()` helper…
CVE-2026-107731
CVE-2026-107730
CVE-2026-107729
PraisonAI: ContextGatherer include resolution permits absolute and traversal reads outside the workspace
## Summary
PraisonAI's `praisonai.ui.context.ContextGatherer` treats the configured `directory` as the project workspace, but project-controlled `.praisoncontext` and `.praisoninclude` files can name ab…
PraisonAI: Project custom command templates can read outside-workspace files into model prompts
## Summary
PraisonAI's new file-based custom command feature auto-discovers project commands from `.praisonai/commands/*.md`. When a user runs `praisonai run –command <name>` inside a repository, the command bo…
github.com/moby/sys/user has a possible DoS via unbounded parsing of user and group database files
CVE-2026-106123
CVE-2026-108586
CVE-2026-106139
Vikunja: Explicit lower-permission share on a sub-project is silently overridden by an inherited parent permission (broken access control / privilege-management regression in v2.6.0)
### Summary
In Vikunja v2.6.0 the project-permission engine resolves a user's effective permission on a project as
the **MAX over the entire reachable project subtree**. As a result, when a user has been granted a
**higher** permission on a parent project and the owner *explicitly* …
Vikunja: Saved filter creation with an empty filter string recalculates task positions across all tenants
In Vikunja v2.6.0 the task position recalculation that runs when a saved filter view is created fails open when the requesting user has no accessible projects. Instead of aborting, the search that feeds the recalculation loses its project scope entirely and returns every task in the ins…
Indico: Cross-Site-Scripting in link fields
There is a Cross-Site-Scripting vulnerability in fields that allow entering custom URLs.
### Patches
You should to update to [Indico 3.3.13](https://github.com/indico/indico/releases/tag/v3.3.13) as soon as possible.
See [the docs](https://docs.getindico.io/en/stable/installation/upgrade…
CVE-2026-107334
Langflow : Cross-user flow access and vertex execution via deprecated /api/v1/build/{flow_id}/vertices endpoints
Before **Langflow 1.10.1**, two deprecated but still-routed endpoints in the chat API did not check that the authenticated caller owns the flow referenced in the URL path:
– `POST /api/v1/build/{flow_id}/vertices` (`retrieve_vertices_order`)
– `POST /api/v1/build/{flow_id}/vertices/{ve…
Backstage has improper authorization in GitLab organizational user ingestion
Deployments that enable GitLab organization event ingestion and rely on scoped catalog users as an access boundary may admit an unintended catalog identity. Depending on sign-in and permission configuration, this may allow unauthorized access with the permissions of a standard authentica…
wger: trainer_login accepts GET – CSRF bypass enables forced session rebinding
The `trainer_login` view in wger accepts GET requests and executes `django_login()` without any CSRF protection, because Django's `CsrfViewMiddleware` only enforces tokens on unsafe methods (POST/PUT/PATCH/DELETE). An attacker can embed a single `<img>` tag on a malicious page; when an …
CVE-2026-106420
CVE-2026-106272
CVE-2026-106236
CVE-2026-106182
CVE-2026-106179
CVE-2026-102295
CVE-2026-104955
Nginx UI: Bundled reverse proxy can bypass IP allowlists and enable shared login lockout
In Nginx UI versions 2.2.0 through 2.5.x, the official bundled reverse-proxy topology did not preserve the external client identity used by Gin. The backend treated the local proxy peer as the client because no trusted proxy was configured, while the proxy supplied the actual address in …
CVE-2026-75597
pyLoad: Unauthenticated access to /web/<path:filename> bypasses authentication on sensitive templates and leaks internal error details via exception attribute typo
The `/web/<path:filename>` route in `src/pyload/webui/app/blueprints/app_blueprint.py` renders Jinja2 templates without any authentication requirement. Every equivalent direct route (`/logs`, `/settings`, `/queue`, `/dashboard`, etc.) is protected by `@login_required`, but the underlyin…
CVE-2026-107804
PraisonAI: Prompt-injection defense blocks only when 3+ detector families fire simultaneously; realistic single-vector injections pass through unblocked
PraisonAI's opt-in prompt-injection defense (`enable_injection_defense()`) only blocks at `ThreatLevel.CRITICAL`, which requires three or more distinct detector families to match simultaneously. A realistic single- or double-vector prompt injection (e.g. "Ignore all previous instructions…
Coraza: Resource exhaustion via deferred file handle accumulation in multipart body processor
`defer temp.Close()` sits inside a `for` loop in the multipart processor. Go defers run at function return, not loop end, so every file part in the request holds an open fd until `ProcessRequest()` exits. Send enough parts and you hit `EMFILE`. With CRS loaded, that flips `MULTIPART_STRI…
msgpack5: Deeply nested input can exhaust the decoder stack
The decoder has no nesting-depth limit for arrays and maps. An attacker who can provide MessagePack input can use deeply nested containers to exhaust the JavaScript call stack and interrupt the process or request handler.
### Patches
The decoder now limits nesting depth to 100 by defau…
yawkat LZ4 Java: LZ4FrameInputStream reallocates block buffers for every frame, allowing CPU and GC amplification from small inputs
`LZ4FrameInputStream` allocates two new buffers of the frame's maximum block size, up to 4 MiB each, every time it reads a frame header. Because concatenated frames are read by default, an input made of many minimal empty frames forces about 8 MiB of zeroed heap allocation for every 11 …
Next.js has cache poisoning of SSG and ISR pages in self-hosted applications
Next.js has information disclosure in App Router metadata image routes via dynamicParams bypass
ImageSharp: BigTIFF IFD count can keep a decoder thread in a non-progressing loop
`SixLabors.ImageSharp` 4.1.1 can spend an attacker-controlled duration decoding a
small malformed BigTIFF. The BigTIFF IFD entry-count field is 64-bit. The reader
iterates once per declared entry, but when fewer than 20 bytes remain for an entry,
the entry read returns without advancing…
ImageSharp: ICC CLUT parsing allocates from unvalidated channel and grid dimensions
A malformed embedded ICC profile can make ImageSharp allocate memory from attacker-controlled CLUT channel and grid dimensions before verifying that the declared CLUT values are present.
In published v1 through v3 packages, the public lazy ICC parser allocates approximately 115 MB from…
Excelize: RIGHT() on supplementary-plane text slices with a negative index and panics
Backstage: Improper entity validation in deprecated Kubernetes services endpoint
An authenticated user with Kubernetes read permissions could access Kubernetes workload data beyond their intended scope by supplying crafted entity data to the deprecated services endpoint. The exposure is limited to read-only access to Kubernetes object metadata across configured clust…
yawkat LZ4 Java: LZ4BlockInputStream allocates an unvalidated compressed length from the stream header
`LZ4BlockInputStream` grows its compressed-input buffer to the attacker-controlled `compressedLen` value from the legacy `LZ4Block` stream header before reading any payload bytes. A header-only input can therefore trigger a near-2 GiB allocation and exhaust the JVM heap.
### Details
I…
yawkat LZ4 Java: LZ4DecompressorWithLength allocates the unvalidated size from the 4-byte length header, so a 5-byte input triggers a 1 GiB allocation and OutOfMemoryError
`LZ4DecompressorWithLength.decompress(byte[], int)` allocates whatever size the 4-byte length header declares, before it reads a single byte of compressed data. A 5-byte input whose header says `0x40000000` makes the JVM commit a gigabyte and can cause heap exhaustion.
### Details
`ne…
CVE-2026-106563
CVE-2026-105243
Long messages were truncated to a fixed size that exceeds what the Windows Event Log accepts once the log and source names are counted, and the event log then stored nothing and reported nothing. A party whose data reache…
CVE-2026-105240
A NUL character in logged content ended the debug output record at that point, so everything the layout rendered after it, including exception text and trailing fields, was silent…
CVE-2026-105239
A NUL character in logged content ended the Windows Event Log record at that point, so everything the layout rendered after it, including exception text and trailing fields, was silently n…
CVE-2026-106355
CVE-2026-106214
CVE-2026-106181
CVE-2026-100518
vLLM: Qwen2-VL / Qwen3-VL video samplers bound on request-controlled max_frames, which the num_frames ceiling does not reach
An unauthenticated remote attacker can exhaust the memory of the vLLM API-server process by raising the request-level `media_io_kwargs.video.max_frames` and `fps` knobs on any deployment serving a Qwen2-VL or Qwen3-VL model. 74 extra bytes of JSON took the server's peak RSS from 2 271 M…
vLLM: GLMGA video sampling permits request-driven CPU and memory exhaustion
The OpenAI-compatible chat endpoint accepts request-level video loader options through `media_io_kwargs`. A caller can select the GLMGA sampler and provide large `fps` and `max_frames` values. GLMGA first constructs an attacker-sized Python index list and then deduplicates it, even when …
Rustls: TLS 1.3 handshake messages incorrectly accepted across encryption level boundaries
CVE-2026-106435
Backstage has a sensitive information disclosure in Kubernetes resource queries
An authenticated user holding the standard Kubernetes resource read permission could retrieve sensitive values that the Kubernetes plugin is designed to mask, potentially exposing credentials and other confidential material held in the connected clusters. Exposure is limited to resources…
CVE-2026-106561
PyMongo: PYTHON-5990 Forced Unix domain socket connection via a .sock KMS endpoint in client-side field level encryption
PyMongo passed the KMS endpoint of a data key verbatim into `parse_host()`, which returns any string ending in `.sock` unchanged instead of validating it as a hostname and port. The driver's connection code then treats such an address as a Unix domain socket path and connects to it with…
Ghost: Regular Expression Denial of Service in External Media Inliner
A crafted request to the external media inliner could cause excessive CPU usage, making the Ghost server unresponsive. Exploiting this requires Administrator access.
### Vulnerable versions
This vulnerability is present in Ghost from v5.37.0 up to v6.65.0.
### Patches
v6.67.0 contain…
Ghost: Regular Expression Denial of Service in Content Import
A crafted content import file could cause excessive CPU usage, making the Ghost server unresponsive. Exploiting this requires Administrator access.
### Vulnerable versions
This vulnerability is present in Ghost from v4.0.0 up to v6.65.0.
### Patches
v6.67.0 contains a fix for this is…
RabbitMQ: JSONReader in the default JSON-RPC mapper never terminates on truncated input, causing DoS
`com.rabbitmq.tools.json.JSONReader.read()` never returns when its input ends inside a quoted string or a `//` line comment. Both scanners walk the input with `StringCharacterIterator.next()` but only compare against a delimiter, so once the iterator reaches `CharacterIterator.DONE` (`��…
Ghost: Path Traversal via Locale Setting
A vulnerability in how Ghost loads theme translation files allowed an authenticated Administrator to read JSON files outside of the active theme's directory, potentially exposing server configuration secrets.
### Vulnerable versions
This vulnerability is present in Ghost from v1.20.0 u…
Backstage: Secret-derived values may be exposed in scaffolder task logs
Deployments that configure sensitive `scaffolder.defaultEnvironment.secrets` and allow an attacker to create or modify Scaffolder templates are affected. A template author could cause secret-derived values used during template iteration to be persisted in task logs, exposing those values…
CVE-2026-106121
CVE-2026-105676
CVE-2026-105646
CVE-2026-105645
SiYuan: /history/*path and /repo/diff/*path potentially exposing historical snapshots of data/.siyuan/publishAccess.json and data/templates/*
`GHSA-c8r8-95hg-mp34` added a centralized guard,
`util.IsForbiddenAbsPath()`, specifically to block access to a small
set of sensitive files: `conf/conf.json` (plaintext
`accessAuthCode`/API token/cookie key), `data/snippets/conf.json`,
the entire `data/templates/` directory, and
`data/.…
CVE-2026-108597
CVE-2026-107660
Next.js has cache poisoning in SSG/ISR rendering that leads to cross-user content substitution and persistent denial of service
Backstage: Inconsistent credential enforcement for overlapping proxy routes
An operator can configure overlapping proxy paths with different credential requirements. When a parent path permits unauthenticated access and a nested path requires credentials, the parent exemption can also cover requests handled by the nested proxy. An unauthenticated caller may ther…
CVE-2026-46437
wger: API credentials remain valid after logout/password change
A vulnerability exists in the authentication/session lifecycle of `wger` where **bearer-style API credentials** remain valid **after a user logs out and after a user changes their password**. An attacker who steals a victim’s **DRF authtoken** (`Authorization: Token …`) or **JWT ref…
Handlebars: JavaScript Injection via Unsafe Inline Embedding of Precompiled Templates
`Handlebars.precompile()` generates JavaScript source that is commonly embedded in browser `<script>` elements. Before the fix, static template text containing `</script>` was emitted unchanged. HTML parsers recognize `</script>` even inside a JavaScript string literal, closing the surro…
CVE-2026-106376
CVE-2026-106284
CVE-2026-106258
CVE-2026-106215
CVE-2026-106202
CVE-2026-106340
CVE-2026-106192
Indico: Cross-Site-Scripting in minutes editor
There is a Cross-Site-Scripting vulnerability in the minute editor conflict UI tha's shown when concurrent edits are made to the same minutes in an event.
### Patches
You should to update to [Indico 3.3.13](https://github.com/indico/indico/releases/tag/v3.3.13) as soon as possible.
See […
Backstage: Improper input validation in cloud storage URL readers
An attacker with write access to a cloud storage bucket used by Backstage could craft object names that could collide with protected files in the output directory. In certain deployment configurations, this could lead to content injection.
### Patches
Patched in `@backstage/backend-def…
CVE-2026-20032
This vulnerability is due to insufficient val…
CVE-2026-108655
CVE-2026-108647
Indico: Missing access check in legacy session export API
A legacy API to retrieve session details could be misused to retrieve metadata (such as title, description and conveners) of a restricted session within without having access to that session, as long as the event itself was accessible.
### Patches
You should to update to [Indico 3.3.13](…
CVE-2026-107444
Docling: Crafted DoclingDocument JSON embeds local image files into converted output
docling accepts serialized `DoclingDocument` JSON as an input format (`InputFormat.JSON_DOCLING`, enabled by default). A crafted JSON file can set a picture's image `uri` to a local file path. When the converted document is exported with embedded images (`ImageRefMode.EMBEDDED`, the CLI…
Ghost: Editors Could Promote Staff Users to Their Own Role
Staff users with the Editor or Super Editor role were able to assign their own role to Author and Contributor users, despite not having permission to assign that role.
### Vulnerable versions
This vulnerability is present in Ghost from v0.5.0 up to v6.64.0.
### Patches
v6.64.0 contai…
Backstage has incorrect authorization in search engine permission filtering
An authenticated Backstage user subject to a `DENY` policy for search document types could receive search results they were not authorized to view. This affects deployments with `permission.enabled: true` and an Elasticsearch or OpenSearch search backend.
### Patches
– Upgrade `@backst…
Twisted: IMAP wildcardToRegexp() ReDoS
`wildcardToRegexp()` in `twisted/mail/imap4.py` converts IMAP LIST/LSUB wildcard patterns to Python regular expressions. It substitutes the two IMAP wildcards (`*` → `(?:.*?)` and `%` → `(?:(?:[^\\/])*?)`) but passes every other character through unchanged to `re.compile()`. This m…
CVE-2026-106454
CVE-2026-102408
CVE-2026-106184
Docling: METS-GBS archive member limit enforced after full member enumeration (memory exhaustion during format detection)
When docling detects the input format of a gzip-compressed tar archive (METS-GBS), and later when the METS-GBS backend opens it, it calls `tarfile.TarFile.getmembers()`. That builds the full member list in memory before the `max_member_count` limit is checked. A small archive with a ver…
CVE-2026-105573
Duplicate Advisory: Docling: METS-GBS archive member limit enforced after full member enumeration (memory exhaustion during format detection)
This advisory has been withdrawn because it is a duplicate of GHSA-3cr3-8m4c-fpxw. This link is maintained to preserve external references.
## Original Description
Docling simplifies document processing by parsing diverse formats and providing integrations with the generativ…
CVE-2026-103546
CVE-2026-105678
CVE-2026-108752
CVE-2026-108738
CVE-2026-107719
fast-jwt: Verifier cache accepts expired JWTs without iat.
`cacheSet` only derives its `exp` cache deadline inside `hasIat` (`src/verifier.js:127-140`). JWT `iat` is optional. For a valid token with `exp` but no `iat`, `cacheSet` substitutes `clockTimestamp + clockTolerance + cacheTTL` (`src/verifier.js:142-146`). Later, the cache path returns t…
CVE-2026-107361
Next.js: Pending `use cache` fill can leak Draft Mode content into regular responses and persisted pages
– A regular request that overlaps an editor's Draft Mode request receives unp…
CVE-2026-106552
CVE-2026-106187
vLLM: Flash late-interaction scoring caches query embeddings under a caller-controlled request id — cross-request integrity break and induced errors on `/score` and `/rerank`
– **Ecosystem / package:** pip / `vllm`
– **Affected versions:** vLLM ≤ 0.25.1 (confirmed on 0.25.1, commit [`752a3a504485`](https://github.com/vllm-project/vllm/tree/752a3a504485790a2e8491cacbb35c137339ad34)). The lower bound predates 0.25.1; maintainers can confirm how far back the …
Coraza: Multipart filename* (RFC 5987) charset restriction lets a decoy filename bypass FILES-based rules
Coraza extracts a multipart file upload's filename using Go's standard-library `mime.ParseMediaType`, which only decodes the RFC 5987/6266 extended `filename*` `Content-Disposition` parameter when its declared charset is exactly `us-ascii` or `utf-8`. Any other charset — including `iso…
Coraza has Cookie Parser Confusion
Coraza's cookie parser (`internal/cookies.ParseCookies`) does not strip ASCII control characters (CTLs) from the edges of a cookie name/value before they're matched against `REQUEST_COOKIES` / `REQUEST_COOKIES_NAMES`. When a CTL sits directly next to the `=` separator, Coraza absorbs it i…
Coraza: ProcessURI silently drops QUERY_STRING and ARGS_GET on URI parse failure — defense-in-depth bypass for non-net/http integrations
File: `internal/corazawaf/transaction.go`, lines 834–866.
“`go
parsedURL, err := url.ParseRequestURI(uri)
query := ""
if err != nil {
tx.variables.urlencodedError.Set(err.Error())
path = uri
tx.variables.requestURI.Set(uri)
/*
tx.Variables.VARIABLE_URI_PARS…
Docling has SSRF guard bypass in remote resource fetching (DNS rebinding / multi-record resolution; no IP validation in HTML render mode)
When remote fetching is enabled (`enable_remote_fetch=True`, together with `fetch_images=True` or HTML `render_page=True`), docling's protection against requests to private and loopback addresses can be bypassed.
– The URL check resolves the host name once, to a single IPv4 address. Th…
Ghost: Server-Side Request Forgery in Bookmark Fetching
A validation issue allowed some functionality, such as Webmentions, to be abused by an unauthenticated user to make limited HTTP requests to hosts in the Ghost server's internal network. A successful attack would not result in any response data being returned.
### Vulnerable versions
T…
Ghost: Private IP Filtering Bypass via IPv6 Transition Addresses
A validation issue allowed some functionality, such as Webmentions, to be abused by an unauthenticated user to make limited HTTP requests to hosts in the Ghost server's internal network on some network configurations. A successful attack would not result in any response data being return…
CVE-2026-105648
CVE-2026-105647
Vikunja: Write-level project members can delete admin-tier link shares through an unloaded permission check
A project member with Write permission can delete an admin-tier link share on that project. The deletion authorization check reads the permission from an object populated only with URL IDs, rather than from the stored share. Its zero value is Read, so the check falls through to project W…
Shiny for Python has path traversal in bookmark restore
Shiny for Python's bookmark-restore path accepted a client-supplied `_state_id_`
query-string value and joined it into the server-side bookmark directory
(`<cwd>/shiny_bookmarks/<id>`) without validating it. A value containing `..`
path segments, or an absolute path, could therefore caus…
Vikunja: Assignee email addresses disclosed to read-only project members via the task assignees endpoint
`TaskAssginee.ReadAll` returns assignee user objects without blanking the `Email` field, disclosing assignee email addresses to any read-only project member. Every sibling path that returns user objects obfuscates the email; this one does not.
### Details
`pkg/models/task_assignees.go` …
Vikunja: Cross-project task disclosure through subtask expansion
Vikunja lets a task in one project have a subtask that lives in a different project. When listing a project's tasks, an option pulls in those subtasks (?expand%5B%5D=subtasks). The main listing is correctly filtered to the projects the caller can access, but the subtask expansion is not:…
Vikunja: CalDAV relation creation bypasses TaskRelation.CanCreate, allowing an unauthorized write into any task by known UID
Creating a task relation over CalDAV does not run the `TaskRelation.CanCreate` permission check that the REST API enforces. An attacker can attach a relation to any task whose UID they know, including tasks in projects they have no access to. The identical operation over REST is correctl…
Vikunja: Link-share token can enumerate users through the v2 API
A link-share token, the credential you hand out to let someone view a shared project, can call the v2 user-search endpoints, which it was never meant to reach. The v1 versions of the same endpoints correctly reject link-share tokens; the v2 versions don't. As a result, anyone with a shar…
Vikunja: Any user can enumerate every team and its members by attaching arbitrary teams to a throwaway project
When you share a project with a team, the API lets you attach any team on the instance, including teams you have nothing to do with, as long as you're an admin of the project. Listing a project's teams then returns each team's full member roster. So any logged-in user can spin up a throw…
Vikunja: CalDAV and feeds BasicAuth endpoints have no rate limit, bypassing the anti-brute-force floor on account passwords
The `/dav`, `/.well-known`, and `/feeds` groups are registered on the root Echo instance with only BasicAuth and no rate limiter. CalDAV BasicAuth accepts the plain account password, so password guessing over `/dav` is unbounded and never returns 429, while `/api/v1/login` is throttled f…
Vikunja: API token scopes bypassed via task expand parameter (comments, reactions, time entry counts)
API token permission checks only match the HTTP method and route path. The `expand` query parameter on task read endpoints embeds data from other permission groups (task comments, reactions, time entry counts) without checking whether the token holds those scopes. A token scoped only to …
Vikunja: Cross-tenant task-position rows can be injected into arbitrary project views via the unvalidated project_view_id in the task position endpoint (v1 and v2)
The task-position endpoint authorizes only the task side of the write: `TaskPosition.CanUpdate` delegates to `Task.CanUpdate` (write access to the task's own project) and the request body's `project_view_id` is never validated to belong to the task's project, nor is any access to that vi…
Vikunja: TOTP secret is readable after enrollment, no step-up auth
Once a user has TOTP enabled, the API still hands back the raw shared secret to anyone holding that account's access token. Reading it doesn't ask for the password, even though disabling TOTP does. So a stolen token, an XSS, or a browser left open is enough to copy the second factor into…
pyLoad: Rate-Limit Bypass and Audit-Log Spoofing via Trusted Client-Controlled `X-Forwarded-For` Header
pyLoad determines the "client IP" used for its rate-limiting decorator and for its
security/audit logging by reading the client-supplied `X-Forwarded-For` (XFF) HTTP header and
taking the leftmost value. No trusted-proxy configuration exists (the Cheroot WSGI server faces
clients directl…
Banks: Symlink traversal and arbitrary file disclosure/overwrite in DirectoryPromptRegistry
In `banks.registries.DirectoryPromptRegistry`, prompt file paths and the index file (`index.json`) do not refuse symbolic links. When a prompt directory contains or accepts untrusted files (e.g. unpacked archives, shared repositories, or multi-tenant folders), symbolic links pointing out…
amqp091-go: Pre-negotiation frame limit is not enforced to 4KB
The frame-size mitigation released in `amqp091-go` v1.13.0 can be bypassed before `connection.tune` completes. A malicious or compromised AMQP peer can send only a seven-byte body-frame header containing a large attacker-controlled `uint32` payload length. The client allocates a slice of …
LangChain: MongoDBChatMessageHistory query injection can allow cross-session access
`MongoDBChatMessageHistory` did not enforce the documented string type for session identifiers at runtime. In affected applications, a structured session identifier could be interpreted as a MongoDB query condition rather than as a literal identifier.
Applications are affected when they …
PraisonAI: PGVector and Cassandra knowledge stores interpolate vector dimensions into DDL
## Summary
The PGVector and Cassandra knowledge-store backends validate SQL/CQL identifiers such as schema, keyspace, and collection names, but still insert the caller-controlled `dimension` argument directly into `CR…
PraisonAI: Project config can auto-save agent output outside the project root
## Summary
`praisonaiagents` automatically reads project-local `.praisonai/config.toml` defaults when constructing an `Agent`. A repository-controlled config can set `defaults.output.output_file` to an absolute path or a `..` tra…
AsyncHttpClient: Cookie Domain attribute is not checked against the public suffix list, so a cookie can be set for co.uk
The cookie store decides whether a `Domain` attribute may be accepted using only the domain-matching rule of RFC 6265 Section 5.1.3, which asks whether the request host is the domain or ends with a dot followed by it. Section 5.3 step 5, which additionally requires rejecting a `Domain` th…
@payloadcms/plugin-multi-tenant has a cross-tenant create issue
An authenticated user limited to one tenant could create a record in another tenant. This requires the multi-tenant plugin with at least one tenant-enabled collection.
Reads and direct edits to an existing target-tenant document were not bypassed.
You are affected if:
– You are using @p…
Payload: Unauthenticated account-lockout denial of service
An unauthenticated attacker who knows an account’s email address or username could trigger Payload’s account lockout mechanism and prevent that user from signing in.
You are affected if:
* Using an affected Payload version with an auth-enabled collection that uses local authent…
RabbitMQ: Malformed UTF-8 in shortstr properties permanently disables RPC consumers
A single AMQP message with malformed UTF-8 in a shortstr property (for example `correlation-id`) can permanently disable a Java client RPC consumer.
The client decodes malformed bytes into U+FFFD replacement characters. Each of those re-encodes to 3 bytes, so a 255-byte property become…
RabbitMQ Java client: plaintext broker credentials leaked in exception message from ConnectionFactoryConfigurator.load()
When property-file/Map-based `ConnectionFactory` setup fails while parsing the `uri` key, the library wraps the underlying exception with the raw connection string — including the plaintext username and password — baked verbatim into the new exception's message.
### Details
`Connect…
Vyper: Memory corruption using function calls within tuples / nested calls
When performing a function call inside a tuple or as an argument inside another function call, there is a memory corruption issue that occurs because of an incorrect pointer to the the tip of the stack.
Example code:
“`python
@internal
def _foo(a: uint256, b: uint256, c: uint256) -> (ui…
Vyper: Call stack corruption when passing complex type containing non-base type members as argument
When we pass a multi-dimensional array (like `[[1, 2], [3, 4]]`) as an argument to internal/external functions we get incorrect output. This is due to a stack management issue, because it was assumed that the size of each subtype of an array/struct is 32, which is not always correct.
Exa…
Vyper: Return inside for loop more than 1 level deep
Earlier today, we received a responsible disclosure of a potential issue from @michwill (developer of @curvefi) for Vyper users who use return statements inside for loops of nested internal calls. Returning inside a for loop causes an invalid jump dest, reverting the transaction unne…
Langflow: SSRF in URL-taking components (protection disabled by default / warn-only, not applied to RSS, SearXNG, Web Search, Home Assistant, Glean, Docling)
Before **Langflow 1.10.3**, several built-in components sent server-side HTTP requests to URLs the flow author controls, with no SSRF enforcement. An authenticated user who can build or run flows could make the Langflow server reach loopback, RFC 1918 / private networks, link-local addr…
Werkzeug safe_join() allows Windows special device names
This was previously reported as https://github.com/pallets/werkzeug/security/advisories/GHSA-hgf8-39gv-g3f2, but the added filtering failed to account for the fact Windows allows spe…
uv: Path traversal on Windows through wheel extraction
In versions of uv from 0.12.7 to 0.12.18 on Windows, uv could be induced into writing a file outside of the installation prefix during wheel installation.
A malicious wheel could use this to place an executable outside of the intended environment, including in a directory already presen…
hickory-resolver follows irrelevant CNAME records
SiYuan: TLS Private Keys Readable via getFile (Incomplete Blocklist)
`IsForbiddenAbsPath()` only blocks `conf/conf.json` by exact match. The TLS private key (conf/key.pem) and CA private key (conf/ca.key) live in the same conf/ directory and are absent from the blocklist. Any authenticated user can retrieve them via POST `/api/file/getFile`.
### Root ca…