All High Medium Low
grafana/grafana Authorization bypass / Privilege escalation MEDIUM
The commit tightens access control for the /alerting/import-to-gma route by replacing a blanket Admin-only gate with a more granular evaluation that requires specific alerting permissions (AlertingRuleCreate, AlertingProvisioningSetStatus, AlertingNotificationsWrite). This prevents potential authorization bypass to the Grafana Migrate/Import to GMA flow by users who should not have access. The change includes code updates to routes, related components, and tests to verify permissions and feature flag gating. This is a genuine security improvement (authorization/authZ fix) rather than a mere dependency bump or cleanup.
Commit: b89b76c7 Affected: <=12.4.0 2026-07-17 20:16
grafana/grafana Security configuration / access control around Bitbucket webhook provisioning MEDIUM
This commit hardens Bitbucket webhook provisioning by gating the webhook enablement behind the presence of an Atlassian account email and by validating the email input. It introduces a UI rule that disables Bitbucket webhook integration when the Atlassian account email is not set, and adds an email field with proper validation for Bitbucket configurations. This reduces the risk of misconfigured or inadvertently enabled webhooks for Bitbucket repositories, addressing a security-related configuration issue (access control around webhook provisioning).
Commit: b2b9be10 Affected: <=12.4.0 2026-07-17 18:16
torvalds/linux Memory safety / Use-after-free (stale PCI device reference in VF handling) HIGH
The commit fixes a memory-safety vulnerability in the LiquidIO CN23XX driver where a cached pointer to a VF PCI device (dpiring_to_vfpcidev_lut) could be dereferenced after the VF device was removed or its reference dropped. The previous code cached VF PCI device pointers without proper reference management and later dereferenced them during OCC/FLR handling (via OCTEON_VF_ACTIVE path). The patch removes the cache and replaces it with a runtime lookup that derives the VF from the DPI ring, validates it against the PF, and performs proper reference handling (pcie_flr then pci_dev_put). This reduces the risk of use-after-free or invalid dereferences when handling VF FLR requests.
Commit: 5c0e3ba4 Affected: <= v7.0-rc6 (CN23XX LiquidIO SR-IOV VF handling prior to this patch) 2026-07-17 16:44
torvalds/linux Out-of-bounds read (memory safety issue in rtl8723bs OnAssocRsp IE parsing) HIGH
The commit fixes an out-of-bounds read in the 802.11 IE parsing during Association Response processing in OnAssocRsp() for the rtl8723bs driver. Previously, the IE parsing loop advanced by (pIE->length + 2) for each IE but only guarded the loop with i < pkt_len. This allowed a malicious AP to craft an Association Response whose last IE ends near the frame boundary (e.g., with only one byte remaining), causing the code to read pframe[pkt_len] and read pIE->length from memory beyond the frame. Additionally, even when headers were within bounds, pIE->length could extend past pkt_len, allowing a truncated/invalid IE to be passed to handler code. The patch adds two guards at the top of the loop: (1) break if fewer than sizeof(*pIE) bytes remain (can't read header), and (2) break if the IE's declared data extends past pkt_len. This prevents out-of-bounds reads, improving memory safety and reducing potential information leakage or crashes from crafted 802.11 frames.
Commit: f9654207 Affected: v7.0-rc6 and earlier (rtl8723bs staging driver; vulnerable prior to this patch) 2026-07-17 16:37
torvalds/linux NULL pointer dereference / use-after-close in kernel space (memory safety issue) HIGH
The commit fixes a potential NULL pointer dereference in the AMD XDNA GEM/BO handling path. After a BO handle is closed, abo->client may be cleared to NULL while the underlying GEM object can still be referenced by the kernel. Code paths that execute after the BO close could dereference abo->client (e.g., abo->client->xdna), leading to a NULL pointer dereference and possible kernel OOPS. The patch eliminates dereferencing abo->client after close by obtaining the device context via the object's gobj dev (to_xdna_dev(to_gobj(abo)->dev)) and by guarding access patterns in relevant helpers (e.g., amdxdna_gem_vmap, amdxdna_dev_offset calculations, and dma address handling). It also adds protective comments and guards in the HMM registration path to avoid using abo->client when the resource is already detached, relying on mem.dma_addr or UVA paths instead.
Commit: c69dbbf0 Affected: Pre-7.0-rc6 (i.e., 7.0-rc5 and earlier) in the AMD XDNA driver; fixed in 7.0-rc6. 2026-07-17 16:29
torvalds/linux Information disclosure HIGH
The commit fixes an information-disclosure vulnerability in the KVM arm64 FFA_VERSION host-call path. Previously, kvm_host_ffa_handler declared a local stack variable 'res' of type struct arm_smccc_1_2_regs without initializing it when the compiler did not automatically zero-initialize stack variables. The host call path could return residual data from the hypervisor stack to the guest via FFA_VERSION, leaking sensitive hypervisor/stack contents across the host-guest boundary. The patch changes the local 'res' declaration to zero-initialize it (struct arm_smccc_1_2_regs res = {0};), ensuring no residual data is leaked in the return data. This is a genuine security fix addressing information disclosure at the KVM/ARM64 host-guest boundary.
Commit: 2bd3c6c7 Affected: v7.0-rc6 and earlier (arm64 KVM FFA_VERSION path) 2026-07-17 16:26
torvalds/linux Memory safety - NULL pointer dereference in CRIU queue restoration path (amdkfd/KFD with Shared MES) MEDIUM
The commit fixes a memory-safety issue in the AMDGPU KFD CRIU restore path. Specifically, during kfd_criu_restore_queue, the code previously attempted to acquire queue buffers (kfd_queue_acquire_buffers) which could dereference null or invalid pointers if CRIU had not restored buffers or if MES pointers were not prepared. The patch adds a guard in init_user_queue: if MES is enabled and the queue’s wptr_bo is NULL, it logs a message and returns -EINVAL, preventing a potential null pointer dereference. It also removes the unconditional acquire_buffers call from kfd_criu_restore_queue, since acquiring buffers was only needed to prevent a dereference in init_user_queue and is no longer appropriate during CRIU restoration. In short, this is a targeted memory-safety fix to avoid NULL pointer dereferences in CRIU restore flows involving shared MES buffers. It is a real vulnerability fix (memory safety) rather than a pure refactor or test change.
Commit: 8a93f77a Affected: v7.0-rc6 (tracked) and subsequent mainline post-patch; applies to kernels carrying this commit 2026-07-17 16:22
torvalds/linux Use-After-Free (UAF) in IGMP timer handling around in_device during concurrent teardown HIGH
The commit fixes a race between device teardown (inetdev_destroy) and IGMP processing that could cause a use-after-free of struct in_device in the IGMP timer path. Specifically, igmp_gq_start_timer() and related timer arming paths could re-arm timers while the underlying in_device is being freed under RCU grace, leading to a dereference of freed memory when the timer fires. The fix adds in_dev_hold_safe() (wrapping refcount_inc_not_zero) and only arms the timer if a safe non-zero refcount increment succeeds; otherwise the timer is not armed. This prevents acquiring a reference to an in_device that is already being destroyed, eliminating the potential UAF. A similar issue was fixed for IPv6 MLD in a separate patch. Impact: Use-After-Free (UAF) in the IGMP timer handling code due to a race with inetdev_destroy. The vulnerability could cause kernel panics (DoS) and, in theory, memory safety issues if exploited in certain conditions. The commit is a genuine fix for this issue, not just a dependency or formatting change.
Commit: 7b19c0f8 Affected: v7.0-rc6 and earlier (mainline before this commit) 2026-07-17 16:20
torvalds/linux Authentication/Authorization HIGH
This commit applies a set of security-hardening changes to the ksmbd SMB3 server, addressing authentication/authorization flows and session/channel binding integrity. The patch touches session keys and signing keys, channel binding limits, reauthentication of bound sessions, cross-dialect binding validation, and error handling. Notable changes include deriving and using a per-session key for signing, enforcing a maximum number of channels per session, ensuring different-user reauthentication on bound channels is rejected with proper status codes, using signed responses where appropriate, and aligning error reporting (e.g., STATUS_ACCESS_DENIED vs. other codes) and cross-dialect binding handling with the session dialect. Collectively, these changes mitigate potential authentication bypasses, binding integrity issues, and information disclosure risks in SMB session establishment and channel binding flows.
Commit: a635d674 Affected: Before this commit (pre-patch ksmbd SMB3 server), i.e., v7.0-rc6 and earlier. 2026-07-17 16:03
torvalds/linux Information Disclosure HIGH
The commit fixes an information disclosure risk where the caller's thread keyring could be kept alive longer than the caller's lifetime when opening a table device via the block dm subsystem. Prior to the patch, the backing device could be opened with the caller's credentials, potentially pinning the caller's thread keyring in memory and allowing leakage of sensitive key material (e.g., the LUKS volume key) during operations like luksSuspend. The fix ensures the backing device is opened with kernel credentials (scoped_with_kernel_creds), preventing the caller's credentials from being pinned in the file object, thereby avoiding leaking the thread keyring and making the key material discardable as intended. This mitigates an information disclosure vulnerability related to cryptographic keys in memory.
Commit: 981ccd97 Affected: v7.0-rc6 and earlier (before commit 981ccd97f7153d310dfa92a534525bbaf46752c2) 2026-07-17 15:48
torvalds/linux Memory Safety: NULL pointer dereference in kernel device-mapper pcache option parser HIGH
The patch fixes a memory-safety vulnerability in the device-mapper pcache target option parser. Previously, when parsing an option table that advertises an optional argument but provides only the option name (e.g., cache_mode) and no corresponding value, parse_cache_opts would consume the option name, decrement argc, and then call dm_shift_arg() to fetch the value. If no value existed, dm_shift_arg() could return NULL, and a subsequent strcmp() would dereference that NULL pointer, causing a NULL dereference. This could crash the kernel or potentially be leveraged for a DoS. The fix adds explicit checks to ensure an option has a value before consuming it, returning a proper error when a value is missing and avoiding the NULL dereference while preserving correct behavior for well-formed tables.
Commit: d9c631e3 Affected: < v7.0-rc6 (pre-fix kernels containing the dm-pcache option parser) 2026-07-17 15:47
torvalds/linux Deserialization vulnerability / Input validation issue in CRIU restore path HIGH
This commit fixes a deserialization/memory-safety issue in the CRIU restore path for AMDGPU's KFD queues. It adds bounds checks on the private CRIU restore data: (1) validates that the provided queue type is within the defined KFD_QUEUE_TYPE_MAX, and (2) validates that the provided mqd_size matches the expected size for that queue type via a new mqd_size_from_queue_type helper. Previously, crafted CRIU restore data could potentially instruct the kernel to restore queues with invalid types or mismatched MQD sizes, which could lead to out-of-bounds accesses or corrupted state during restoration. The changes are defensive input validation to prevent deserialization-related memory-safety issues in the CRIU restore code path.
Commit: 47ea05f2 Affected: <= v7.0-rc6 2026-07-17 15:33
grafana/grafana Access control / Privilege escalation via RBAC scope UID collision for alert rules MEDIUM
The commit adds an RBAC translation for alert rule resources under rules.alerting.grafana.app. It introduces a per-object direct-scope for alert rules using the resource name alert.rules (prefix) and the UID, instead of a potential folders:uid:<uid> path. This, combined with folder inheritance (folderSupport: true), prevents a collision between rule UIDs and folder UIDs from causing an authorization bypass. Prior behavior could map per-object scope to a folder UID, potentially allowing access to alert rule resources when a user had folder-scoped permissions for a folder whose UID collided with a rule UID. The change is a genuine security fix to RBAC behavior for alert rules, not merely a dependency bump or a test addition. The changes are focused on authorization routing for alert rule resources (alertrules, recordingrules, rulesequences) and their mapping to alert.rules:* actions, with a dedicated per-object scope prefix to avoid collisions with folders.
Commit: 848529be Affected: < 12.4.0 2026-07-17 15:16
grafana/grafana Information Disclosure / Authentication Bypass HIGH
The commit changes OFREP evaluation to filter results by public metadata, so unauthenticated requests no longer receive private flag information. It removes a previous hard unauthenticated allowance for non-public flags and introduces proxy-level filtering that only returns public flags to unauthenticated users, or a not-found response for non-public flags. This mitigates information disclosure and potential authentication-bypass via flag enumeration. The change includes test scaffolding and new helper logic to filter results based on flag metadata.
Commit: 8c55950f Affected: <=12.4.0 2026-07-17 14:16
grafana/grafana Memory exhaustion / Denial of Service (resource exhaustion) MEDIUM
The commit adds a cap on the number of buffered objects in the unified storage ingester. Previously, if a new object arrived and the in-memory buffer was at its max capacity but the object wasn't already buffered, the code could create a new buffer entry, potentially allowing unbounded memory growth and opening a Denial of Service via resource exhaustion. The fix enforces a hard cap on buffered objects and drops incoming events when the buffer is full, recording the number of dropped events via metrics. Tests were added to verify the cap behavior and that existing buffered objects can still accumulate where appropriate.
Commit: 6bf42271 Affected: < 12.4.0 2026-07-17 13:17
grafana/grafana Information Disclosure MEDIUM
The commit adds a server-side check that restricts search facets to only facet-capable fields. Specifically, convertHttpSearchRequestToResourceSearchRequest now rejects facet requests for any field other than the predefined facet field (SEARCH_FIELD_TAGS), returning a BadRequest when an unsupported field is used. The Bleve-backed search path also maps facet request names to actual index fields and rejects unknown fields with a BadRequest, preventing facet queries on internal or non-facet fields. This mitigates information disclosure risks where an attacker could use the search API to enumerate or infer internal field mappings (e.g., labels.region, folder, etc.) by requesting facets on non-public fields. The fix thus closes a potential exposure surface by ensuring only known facet-capable fields (tags) can be used in faceting, and by validating facets against mapped, supported fields before constructing the Bleve query.
Commit: a331fda2 Affected: <= 12.3.x (pre-fix releases prior to 12.4.0) 2026-07-17 12:16
flutter/flutter Memory safety / Use-after-free in iOS AccessibilityBridge handling (SemanticsObject bridge lifetime) HIGH
This Flutter iOS engine patch mitigates a potential memory-safety vulnerability in the SemanticsObject/AccessibilityBridge integration. Previously, code could hold a raw bridge pointer or dereference the bridge after the AccessibilityBridgeIos object had been destroyed (e.g., during engine teardown, view controller swaps, or shutdown while VoiceOver still references the accessibility tree). This could yield use-after-free or undefined behavior when calling bridge-related APIs (such as bridge->view(), DispatchSemanticsAction, hit-testing, or coordinate conversions). The patch replaces the internal bridge storage (fml::WeakPtr<AccessibilityBridgeIos>) with safe accessors (bridge and bridgeView) that return a raw pointer or UIView* only when the bridge is still alive, and updates call sites to fetch the pointer once and guard against nullptr, ensuring no access occurs after destruction. It also marks the relevant properties as nullable and wraps the corresponding access paths accordingly. A test was added to destroy the AccessibilityBridge and verify that semantics accessors, actions, geometry conversion, and hit-testing do not touch freed memory afterward.
Commit: 7ea98d8a Affected: v1.16.3 and earlier 2026-07-17 05:46
grafana/grafana TLS Certificate Validation Bypass (Insecure TLS in development) HIGH
The commit replaces a hard-coded Insecure TLS setup for the annotation service client with configurable TLSClientConfig usage. Previously, the REST config could enable Insecure (bypassing certificate validation) in Development environments, creating a potential MITM risk for TLS traffic between Grafana and the annotation API server. The fix introduces proper TLS configuration via TLSClientConfig, allowing a CA bundle to be specified or falling back to the system trust store, and preserves Insecure only in Development for local testing. This reduces exposure to MITM attacks in production and non-dev environments.
Commit: 9d7f3b56 Affected: Grafana 12.0.0 through 12.3.x (prior to 12.4.0) 2026-07-16 16:22
traefik/traefik Path Traversal HIGH
The commit adds path normalization checks in the rewrite target middleware (and related snippet rewrite action) to reject requests where path normalization would change the path. Specifically, it computes the original path, applies a normalization via req.URL.JoinPath(), and then rejects with 400 Bad Request if the normalized path differs from the original. This blocks potential dot-segment/dot-dot path traversal in rewrite targets (e.g., /foo../bar, /api../admin) that could otherwise allow access to unintended resources or disclose information when rewrites are evaluated. The changes are covered by tests that exercise traversal scenarios. In short, this is a genuine path-traversal prevention fix at the edge (rewrite/URL normalization), not a mere dependency bump or test-only change.
Commit: 14bc52dd Affected: 3.7.0-ea.3 and earlier in the 3.7 release line (pre-fix). 2026-07-16 10:01
grafana/grafana Privilege Escalation via token exchange namespace leakage HIGH
The commit tightens the token exchange namespace scoping used by the annotation API. Previously the token exchange requests could be issued with a wildcard Namespace ('*'), enabling tokens to be exchanged with broad, cross-namespace permissions. The fix introduces a NamespaceMapper derived from the requester context (stack namespace when a stack is present, or org/default namespaces otherwise) and uses it to set the TokenExchangeRequest.Namespace, thereby scoping token exchange to the requester’s stack/org context. This reduces the risk of privilege escalation via token exchange to resources outside the requester’s namespace. The change also updates the REST client construction to pass the Mapper to the token exchange wrapper and adds tests validating the namespace derivation logic.
Commit: 438fe0fa Affected: <=12.4.0 2026-07-15 22:52
grafana/grafana Denial of Service (panic/crash via invalid runtime manifest) HIGH
The commit changes the runtime handling of search-field manifest ingestion from panicking on invalid declarations to returning an error. Previously, loading a bad manifest at runtime could crash the service, potentially enabling a denial-of-service if an attacker could supply a malicious manifest. The fix introduces error-returning constructors (newMapProvider/newManifestBackedProvider) and propagates these errors up to the caller (e.g., NewSearchOptions/SearchFieldProviders), with tests ensuring errors are surfaced instead of panics. This hardens the system against DoS via invalid manifests.
Commit: 923834dd Affected: <= 12.3.x (pre-12.4.0) 2026-07-15 11:52
grafana/grafana Access Control / Information Disclosure HIGH
The commit gates the display and actions of homepage recommendations based on live plugin state and user permissions. This mitigates information disclosure and unauthorized access to plugin management features by ensuring that recommendations are shown and their actions are available only when the user has appropriate permissions and the relevant plugins are in a state that allows interaction. Prior to this fix, the Home page could surface plugin-related recommendations and actions to users without sufficient permissions, potentially revealing which plugins exist and enabling unintended plugin-related actions.
Commit: 9b3492fb Affected: Versions prior to 12.4.0 (pre-fix). 2026-07-14 19:58
victoriametrics/victoriametrics Data race HIGH
A data race exists in the OpenTelemetry metadata handling path of vmagent where metadata slices produced by the OTLP/OpenTelemetry stream parser are assigned directly to the WriteRequest.Metadata field. The parser reuses internal buffers, and the remote write path may still read the queued write request while the parser reuses its backing array, leading to concurrent mutations of the same underlying memory. The fix copies each metadata entry into a PushCtx-owned buffer (mmsDst) before assigning to WriteRequest.Metadata, eliminating the shared backing array and thus the race. This is a correctness/concurrency bug with potential memory-safety implications (crashes or inconsistent state) under concurrent OTLP streaming workloads. Affected code paths involve inserting rows for OpenTelemetry metadata and the remote write path; the fix brings them in line with how the Prometheus remote write path already handles metadata by copying to an independent buffer.
Commit: dedf4563 Affected: <=1.139.0 2026-07-10 17:04
grafana/grafana Authorization bypass / Privilege escalation HIGH
The commit migrates folder actions in the alerting unified UI to centralized ability hooks (FolderAction, useFolderAbility, useGlobalRuleAbility) instead of ad-hoc permission checks (e.g., contextSrv.hasPermission). This refactor enforces authorization decisions through a unified capability system, reducing the risk of inconsistent or bypassable frontend checks when performing folder-related actions (create, export, pause, delete). While server-side authorization remains essential, the frontend gating now routes through centralized abilities, addressing potential authorization bypass scenarios caused by scattered or duplicated checks across components.
Commit: 91627cef Affected: 12.4.0 and earlier 2026-07-10 13:16
grafana/grafana Path Traversal / Path normalization weakness and error-suppression issue HIGH
The commit introduces safeguards around how folder titles are mapped to repository export paths during provisioning. Previously, a folder title could yield an unsafe or ambiguous path when deriving the export path directly from the raw title (e.g., titles containing characters outside the allowed path set). This could cause a write to fail and be recorded as FileActionIgnored, leading the job to report success with no changes while exporting nothing. The fix adds: (1) SanitizeSegment to convert a folder title into a single safe path segment (dropping unsupported chars, trimming leading/trailing spaces/dots, and falling back to UID when needed), and applies it to folderTree.dirPath; (2) a collision check to fail the export loudly if two distinct folders map to the same path; (3) adjusted error handling so genuine export failures are surfaced rather than discarded as ignored. Together, these changes prevent unsafe paths, surface failures, and ensure folder paths are stable and collision-aware. This addresses a path handling vulnerability and improves operability/visibility of provisioning exports.
Commit: bcd903b5 Affected: 12.0.0 - 12.4.0 (before fix) 2026-07-10 11:16
grafana/grafana Authorization bypass / Impersonation HIGH
The patch introduces server-side validation to bind provisioning job author annotations to the actual requester, preventing impersonation of other users when provisioning via Git-backed commits. Prior to this change, provisioning jobs could include author annotations (AnnoAuthor, AnnoAuthorEmail, AnnoAuthorID) that did not have to reflect the true requester, allowing an attacker to impersonate another user when provisioning resources or triggering commits. The fix enforces that, on create, the author annotations must either be empty (no attribution) or match the actual requester (unless the request is made with service identity), and on updates, author-related annotations become immutable. This reduces the risk of authorization bypass/privilege escalation through forged provisioning metadata and ensures commit signatures reflect the acting user. It also adds a dedicated author attribution helper and tests around author validation and immutability.
Commit: c06a1a01 Affected: < 12.4.0 2026-07-10 09:16
traefik/traefik Open Redirect HIGH
The Open Redirect vulnerability arises when the dashboard redirection logic uses the X-Forwarded-Prefix header to compose the redirect location without validating that the value is a relative path. An attacker could set X-Forwarded-Prefix to an absolute URL (including host and/or scheme) to redirect users to an external domain. The commit adds a validation check that rejects absolute URLs and resets to empty, preventing external redirects via this header.
Commit: 0b956910 Affected: <= 3.7.0-ea.3 2026-07-09 18:08
traefik/traefik Header injection / URL handling MEDIUM
The commit adds validation for the X-Forwarded-Prefix header in the API dashboard. Previously, a crafted value in X-Forwarded-Prefix could influence request routing or origin behavior via header/URL manipulation. The fix parses the header as a URL and rejects obviously absolute URLs (with a Host or Scheme), resetting the prefix to an empty value instead of trusting the client-provided value. This mitigates a potential header/URL injection attack that could cause misrouting or cross-origin concerns. The change is a concrete security fix (not just a dependency bump or refactor).
Commit: b93f02cd Affected: 3.7.0-ea.3 and earlier (prior to this patch in master) 2026-07-09 18:08
traefik/traefik Path traversal / Input validation MEDIUM
The commit adds safeguards for path normalization and X-Forwarded-Prefix handling in the dashboard and routing path. Specifically: - It validates X-Forwarded-Prefix, rejecting values that parse as an absolute URL (having a Host or Scheme). - It introduces path normalization checks in the replace-path-regex middleware: after normalizing the URL path, it rejects the request if the normalized path differs from the original path, preventing potential path-traversal or path-assembly bypass via unusual path constructs. These changes mitigate header-based attacks and path-traversal weaknesses that could occur when untrusted input influences URL paths processed by Traefik or downstream middlewares. Prior to this patch, crafted paths containing traversal sequences (e.g., ..) or manipulated URL joins could be forwarded to backends in a different form than originally requested, potentially bypassing access controls or exposing unintended resources.
Commit: 23062251 Affected: 3.6.x and earlier (pre-merge 3.7.x); 3.7.0-ea.3 includes this fix 2026-07-09 18:07
grafana/grafana Information Disclosure via Logs HIGH
The commit implements a real vulnerability fix by correcting how logging is performed across InfluxDB Flux/FSQL/InfluxQL components. Previously, debug logs could bypass the configured Grafana log level (GF_LOG_LEVEL) due to the use of a package-level or context-insensitive logger, potentially leaking sensitive information or flooding logs. The fix threads a logger through calls, replaces package-level log usage with context-aware loggers, and propagates per-request loggers (and dedicated subs loggers) through Flux/FSQL/InfluxQL pathways, health checks, and DS query handling. This ensures logs respect GF_LOG_LEVEL and reduces the risk of Information Disclosure via debug logs. Affected areas include flux/executor paths, flux/flux.go, fsql, influxql, fsql/fsql.go, health checks, and the main InfluxDB TSDB service wiring to pass logger instances properly.
Commit: 88f0ed37 Affected: < 12.4.0 2026-07-09 17:31
grafana/grafana Authorization Bypass / Access Control MEDIUM
The commit adds a wrapper around several Annotation-related API handlers to override 4xx error responses, ensuring proper access-control behavior. Specifically, it enforces 403 Forbidden for requests lacking the necessary organization-scoped permissions (e.g., annotations:read with organization scope) instead of leaking information via generic 4xx responses. This prevents unauthorized access or information leakage through ambiguous 4xx errors when accessing custom annotation routes.
Commit: e0d5ef9a Affected: Grafana 12.0.0 through 12.4.0 (inclusive) 2026-07-09 14:31
victoriametrics/victoriametrics Resource exhaustion (DoS) / Memory safety MEDIUM
The commit introduces a per-target override for max_scrape_size via the __max_scrape_size__ label in the Prometheus scraping flow. It parses the label value using flagutil.ParseBytes and, if positive, applies it to that specific scrape target instead of the global max_scrape_size. This serves as a configurational control to mitigate resource exhaustion by limiting per-target scrape payloads, addressing a potential DoS/memory exhaustion risk. However, the change does not enforce an upper bound on the per-target value, and an attacker who can influence label values could set a very large size, potentially causing memory pressure or DoS. The tests also illustrate that invalid values are ignored, and valid values override the target's limit.
Commit: 414aa7b3 Affected: < 1.139.0 2026-07-09 13:43
grafana/grafana Authorization Bypass / Identity Immutability (classic provisioning shim kinds) MEDIUM
The commit adds classic provisioning shim kinds (classic-file-provisioning, classic-api-provisioning, classic-converted-prometheus) and introduces an IsClassic() helper. It changes manager-property handling so that resources originating from legacy provisioning paths are reported as managed even when there is no stable identity. This addresses an authorization/immutability gap where classic-shim resources could be treated as unmanaged due to missing or unstable identity annotations, potentially allowing provisioning/update/delete operations to bypass intended protections. The fix also updates several provisioning/export/migrate paths to honor the managed flag for classic kinds. Overall, it is a real vulnerability fix addressing identity-immutability bypass for legacy resources, not a mere dependency bump.
Commit: e473e30a Affected: Grafana 12.x line, specifically 12.4.0 (and earlier 12.x releases) prior to this commit 2026-07-09 07:07
vercel/next.js Prompt injection / self-persisting agent-rules block HIGH
The commit fixes a vulnerability vector known as prompt injection in the agent-rules block used by Next.js. Previously, the agent-rules block could be treated as an instructional directive that might persist or be re-added through automated generation, commits, or diffs, enabling an attacker to influence agent behavior or pull in untrusted content via automated tooling. The patch changes the content and generation flow so the block is verifiable and self-upgrading rather than a self-persisting, commit-bound instruction. Specifically, it: - anchors the docs path to the block file’s directory (instead of a repo-root reference), which helps ensure the generated guidance points to the correct location in monorepos; - replaces the imperative “Keep this block…” with a verify pointer to generate-agent-files.js and a rationale for why committing it keeps the tree clean; - updates the block content to indicate that it is generated and re-added by the dev tool, reducing the likelihood that a malicious patch can cause the block to persist or be trusted as an injected directive. This reduces the risk of prompt injection via the agent rules block in multi-repo or monorepo environments.
Commit: eeb59c12 Affected: 16.2.x series up to and including 16.2.2 (pre-fix); fixed by this commit 2026-07-09 04:25
grafana/grafana Race condition / Data integrity MEDIUM
The patch fixes a race between the data-write commit and the emission of the corresponding event in the unified storage backend. Prior to the fix, if a client canceled after the data write had been durably committed but before the event was emitted, the event could fail to be emitted, leaving the data write visible in the data store but missing an associated event (audit/integrity issue). The fix detaches the data-write commit from the client cancellation by invoking the data-write path (ExecWithRV) with a detached context (context.WithoutCancel(ctx)) so the data is committed even if the client cancels. After the data write commits, it continues to emit the event but uses a bounded persist deadline (10 seconds) to avoid indefinite blocking, ensuring the event emission is attempted and either succeeds or is recorded as an EventEmitFailure. The patch also introduces configurable per-resource lease TTL and auto-renew, and adds metrics for event emission failures, plus a unit test that simulates cancellation after data save to prove the event still persists. Overall, this is a real vulnerability fix addressing a race/integrity bug rather than a mere cleanup or dependency bump.
Commit: 59b8c487 Affected: <=12.4.0 2026-07-08 21:23
vercel/next.js Information disclosure through leakage of server internals into browser/client bundles HIGH
This commit implements browser-variant splitting to prevent server-only modules from leaking into client/browser bundles. Prior to this change, certain server-side modules (e.g., server/app-render/* and related instant-validation code) could be pulled into the browser bundle via dynamic requires or lack of proper .browser.ts/.browser.tsx separation, enabling potential information disclosure about server internals (module paths, server boundaries, implementation details) through the client bundle. The patch introduces explicit browser-variant modules, moves server-specific logic to client-safe variants, and updates imports to ensure browser bundles do not include server internals. It also removes a prior browser boundary implementation that relied on server-bound logic and replaces it with a browser-safe impl, along with a browser-only stub for certain validation boundary pieces. Overall, this is a hardening fix to reduce leakage of server internals into client payloads.
Commit: ea16ee22 Affected: <=16.2.1 (i.e., versions prior to 16.2.2) 2026-07-08 07:29
grafana/grafana RCE via unsafe evaluation of user-provided filter expressions HIGH
The commit patches a remote code execution (RCE) vulnerability stemming from evaluating user-provided filter expressions with JavaScript's Function constructor in the Table filter path. Previously, code in TableNG/TableRT FilterList used new Function with the user-supplied expression, effectively executing arbitrary JavaScript (including IIFEs) in the client context when evaluating a filter expression. This could allow an attacker with UI access to run malicious code in the victim's browser (e.g., admin). The fix replaces the dynamic evaluation path with a safe expression parser (parseExpression) and a predicate-based evaluation, memoizes the evaluation, and ensures invalid/unparseable expressions do not execute or fall back to unsafe behavior. Tests explicitly verify that arbitrary JavaScript IIFEs are not executed and that unparseable expressions yield no results, mitigating the RCE risk.
Commit: cb72ae26 Affected: < 12.4.0 2026-07-07 21:12
torvalds/linux Memory safety - NULL pointer dereference in DMA fence handling MEDIUM
Summary of the observed security relevance in the commit: The DRM fixes include explicit memory-safety improvements, notably guards against NULL pointer dereferences in DMA fence handling. Specifically: 1) In dma_fence_dedup_array, a guard was added to return early when num_fences is 0, preventing an unsafe operation on an empty array. 2) In dma_fence_driver_name and dma_fence_timeline_name, the code now checks that the ops pointer is non-NULL before dereferencing it, avoiding a potential NULL pointer dereference when interacting with fences whose ops may be missing or uninitialized. These changes mitigate a class of memory-safety bugs that could cause kernel panics/OOPS or information disclosure via invalid dereferences in the graphics/subsystem fences path. The commit also contains broader driver cleanup and stability fixes across multiple DRM drivers, but the explicit vulnerability mitigation centers on these NULL-dereference guards in DMA fence code.
Commit: dac0b8c5 Affected: Linux kernel v7.0-rc6 and earlier (pre-patch in drm fixes for 7.0-rc6) 2026-07-04 12:46
victoriametrics/victoriametrics Authorization bypass / Access control MEDIUM
The patch changes how JWTs without a vm_access claim are handled by the vmauth request path. Previously, if a token had no vm_access claim and there was no DefaultVMAccessClaim configured, the request was rejected with 401 Unauthorized immediately. The change makes the JWT handling align with other authentication paths by deferring to the unauthorized_user flow in this case, allowing requests to be handled by the unauthorized_user backend if configured. This corrects an inconsistent authorization flow and reduces the risk of misrouted or prematurely rejected requests due to missing vm_access claims. However, in misconfigured environments, forwarding unauthenticated requests to unauthorized_user could expose backends that rely on additional claim checks. Overall, this is a security-relevant fix to access-control logic rather than a benign code cleanup.
Commit: ebb0b5cb Affected: <= 1.139.0 2026-07-03 14:30
grafana/grafana Access control / RBAC enforcement HIGH
RBAC enforcement gap for serviceaccount operations in Grafana's unified storage layer. The commit adds 'serviceaccounts' to the iam.grafana.app allowlist in the RBAC-enabled access path, ensuring that serviceaccount search/list/read operations are subject to proper RBAC checks. This prevents unauthorized users from enumerating or accessing service account metadata. The change is a security fix addressing insufficient access control rather than a mere cleanup or dependency bump.
Commit: 8891796c Affected: 12.4.0 and earlier (pre-change); fixed in later releases containing this commit 2026-07-03 10:27
grafana/grafana Information Disclosure / Secret leakage HIGH
The commit fixes an information-disclosure risk where inline secure values created during a failed guaranteed update could be left orphaned if the update encounters a conflict. Previously, when a guaranteed update conflicted (HTTP 409), the code would retry the read/update without cleaning up any inline secure values created during that failed attempt. This could allow leakage of sensitive inline secrets (tokens) that were generated during the failed attempt to persist, potentially exposing them to subsequent operations or access controls. The fix ensures that on a conflicting update, the inline secure value is cleaned up (finish/delete) before retrying, preventing leakage of secrets.
Commit: b870273c Affected: Grafana <= 12.3.x (pre-fix); fixed in 12.4.0 2026-07-03 09:06
grafana/grafana Information Disclosure / Improper Access Control (RBAC bypass on team resources in unified storage) HIGH
Security fix: The commit adds 'teams' to the iam.grafana.app allowlist in the authzLimitedClient, ensuring RBAC checks are applied to team search/list/read in unified storage. Prior to this change, any resource not explicitly on the allowlist defaulted to allow-all, which allowed users to enumerate or view all teams in unified storage (specifically in dual-writer mode 4/5). This created an information disclosure vulnerability where unauthorized users could discover team names (and potentially associated metadata) they should not have access to. The fix ensures that team-related operations are evaluated by the real access control client, aligning teams with users, dashboards, and folders in RBAC. The production impact is mitigated by migrating teams to unified storage and by ensuring authorization is consistently enforced for teams as with other resources.
Commit: 51bb33b2 Affected: < 12.4.0 2026-07-03 07:33
grafana/grafana Authorization Bypass / Privilege Escalation (RBAC UI gating) HIGH
The commit introduces RBAC-based gating for the Dashboard Templates UI. It adds DashboardTemplatesRead/Write to AccessControlAction, introduces canReadDashboardTemplates/canManageDashboardTemplates helpers, and hides custom template UI elements (including the custom templates tab, the save-as-template action, and related modal mounts) unless the user has the appropriate permissions. The changes ensure the UI does not present actions that would be rejected by the backend authorizer, replacing previous behavior where certain template actions could be exposed in the UI without confirming the user has the necessary backend permissions. This addresses potential authorization bypass/privilege escalation vectors via the UI by aligning frontend visibility with API permissions. The changes touch multiple UI paths (QuickAdd, NewActionsButton, DashboardScenePage) and include test updates to reflect the gating logic.
Commit: fd3fdaa5 Affected: <= 12.4.0 2026-07-02 22:03
vercel/next.js Input validation MEDIUM
The commit fixes an input validation bug in cacheHandlers keys. Previously the validation used /[a-z-]/ which only required at least one lowercase letter or hyphen anywhere in the key, so keys containing digits, underscores, dots, or other characters could slip through (e.g., 'abc123', 'abc_def', 'handler!'). The patch anchors the regex with /^[a-z-]+$/, ensuring the entire key consists only of lowercase letters and hyphens. This reduces misconfiguration risk and potential edge-case behavior stemming from malformed handler names.
Commit: 8688f98b Affected: 16.2.x before the fix (e.g., 16.2.2 and earlier in the 16.2 line) 2026-07-02 17:12
grafana/grafana Race condition / Authorization bypass in provisioning job mutual exclusion HIGH
The commit implements a fix for a race/authorization bypass in provisioning job mutual exclusion. Prior to this change, ownership of a provisioning job was inferred from a claim timestamp label alone, with no worker identity. Because job names are deterministic (repository + action), a worker could lose ownership (e.g., the job is reaped and re-created under the same name) but still renew or complete the job, potentially causing two workers to execute the same job or allow a worker to delete a job it no longer owns. The patch introduces a per-claim owner token (provisioning.grafana.app/claim-owner) and verifies both the owner token and the object UID before renewing or completing a lease, making a lost lease effectively a hard failure (ErrLeaseLost). It also adjusts claim/rollback behavior and adds tests. Overall, this is a real vulnerability fix addressing a race-condition/authorization bypass risk around mutual exclusion for provisioning jobs.
Commit: 253bdbd3 Affected: 12.4.0 and earlier in the Grafana provisioning jobs feature (v0alpha1) 2026-07-02 17:04
victoriametrics/victoriametrics Input validation / Bounds checking HIGH
The commit adds strict validation for time-series limits to prevent out-of-range values that could lead to data corruption during ingestion. Specifically, maxLabelsPerTimeseries, maxLabelNameLen, and maxLabelValueLen must be within the inclusive range [1, 65535]. The patch introduces a MustInit function that validates these inputs and logs a fatal error if they are out of range, then initializes the limits. This addresses a potential data integrity risk from invalid configuration inputs, by failing fast instead of proceeding with corrupted/unsupported limits.
Commit: 93508215 Affected: 1.139.0 and earlier (pre-fix). 2026-07-02 15:00
vercel/next.js Prototype Pollution MEDIUM
This commit alters the segment explorer trie to use null-prototype objects for its children maps. The previous implementation used plain {} for child nodes, which can collide with Object.prototype properties (e.g., 'constructor', 'toString') when segment names are user-controlled. This change prevents those collisions by ensuring the internal maps do not inherit from Object.prototype, reducing the risk of prototype pollution or logic errors in the segment explorer when handling user-supplied segment names.
Commit: 0d4df38b Affected: All versions prior to 16.2.2 (before this commit) 2026-07-02 13:06
torvalds/linux Memory safety / Undefined behavior (NULL-pointer arithmetic) HIGH
The commit fixes undefined pointer arithmetic in lib/bootconfig.c: xbc_snprint_cmdline() when the function is called with a NULL buffer and size 0. The original code computed end = buf + size and used buf in pointer arithmetic, which is undefined when buf is NULL. The patch introduces a local length accumulator (size_t len) and avoids performing pointer arithmetic on buf. It uses len to track the written length and updates snprintf calls with a conditional buf ? buf + len : NULL and rest(len, size), ultimately returning len. This prevents build-time UBSan/FORTIFY_SOURCE failures and reduces risk of memory-safety issues in edge cases where a caller queries the required length (buf=NULL, size=0). While primarily a correctness/memory-safety fix, it addresses a class of undefined behavior that could otherwise crash or destabilize builds or runs under instrumentation.
Commit: 4a50a141 Affected: <= v7.0-rc6 (pre-fix); fixed in bootconfig patch merged for 7.2-rc1 2026-07-02 10:18
grafana/grafana Privilege escalation HIGH
The commit removes per-object create permission for the team type in Grafana's Zanzana authorization engine. Previously, a user who was an admin of a team could leverage a per-object create relation (team:create) on a specific team to create or list per-object team resources, effectively allowing a privilege escalation that could enable unauthorized creation/list results for teams. The fix enforces that team creation is governed at the namespace level via group_resource (e.g., teams:create translates to group_resource:iam.grafana.app/teams) and removes the per-object create relation from the team type and related guards. This aligns with the semantic that teams are not containers and prevents admins from exploiting per-object create paths. Tests were updated to reflect that team admins no longer get per-object create permissions and are denied for per-object creation/listing; creation flows must go through group_resource instead.
Commit: 528636c5 Affected: <= 12.4.0 (Grafana 12.4.x line; prior releases that included per-object team create) 2026-07-01 14:42
victoriametrics/victoriametrics Memory safety / DoS via oversized metric metadata fields MEDIUM
Summary: The commit introduces a hard limit on metric metadata fields (Help, MetricFamilyName, Unit) to 64 KiB (MaxUint16). It adds IsMetricMetadataExceeding and IsPrometheusMetadataExceeding checks and filters oversized entries before marshaling/inserting metadata, mitigating potential DoS/memory issues from excessively large metric metadata. The changes also update marshaling to fail gracefully when a field exceeds the limit and log warnings. Tests updated to cover oversized inputs. This is a genuine robustness/security fix, not merely a dependency bump or test-only change.
Commit: 658f0b8a Affected: All releases prior to the fix introduced in 1.139.0 (i.e., versions earlier than 1.139.0). 2026-07-01 14:09
grafana/grafana RBAC / Authorization misconfiguration HIGH
This commit implements a real security fix: when creating folders via Grafana's app platform Kubernetes-based folder API, root-level folders are now assigned the grafana.app/grant-permissions annotation with the value 'default'. This ensures that Kubernetes RBAC default permissions are written for those resources. Prior to this change, folders created through the app platform API at root could lack the grant-permissions annotation, potentially leading to misconfigured authorization and either exposure of resources or unintended access due to missing default RBAC grants.
Commit: 2219c362 Affected: 12.4.0 and earlier (pre-fix) 2026-07-01 11:42
grafana/grafana Tenant isolation breach due to missing apiserver context propagation to health checks MEDIUM
The health check subresource did not propagate the apiserver request context to the health-check path. It used req.Context() to derive the tracing span and health context, which lacks apiserver-request-scoped values such as the NamespaceValue(ctx). As a result, tenant isolation could be violated: health checks for a datasource could execute under an empty or incorrect namespace, potentially leaking or mixing tenant data across requests. The patch propagates the outer apiserver context (ctx) into the health check path, ensuring the namespace is preserved for proper multi-tenant isolation.
Commit: db0872b3 Affected: before 12.4.0 (<= 12.3.x) 2026-07-01 10:45
grafana/grafana Information disclosure / Uncontrolled SSO auto-login exposure via bootdata HIGH
The commit removes the SSO auto-login feature toggle (frontendServiceSSOAutoLogin) and related gating logic. Previously, bootdata would include an AutoLoginRedirectURL only when the SSO auto-login flag was enabled. After the change, bootdata generation unconditionally populates AutoLoginRedirectURL for unauthenticated users, effectively exposing auto-login flow configuration in bootdata without a toggle gate. This can lead to information disclosure about the SSO auto-login mechanism and potentially enable unintended automatic authentication flows if an IdP session exists, creating an avenue for automatic login without explicit user action. In short, removing the toggle appears to re-enable or escalate auto-login exposure rather than securely deactivating it, depending on how getAutoLoginRedirectURL behaves when no flag guard is present. The change also removes the feature flag from the registry and related codegen artifacts, removing a guardrail that previously prevented bootdata-based auto-login info from leaking to clients.
Commit: 1176b322 Affected: 12.4.0 2026-07-01 10:42
grafana/grafana Authorization bypass / Information disclosure HIGH
The commit adds an authorization wrapper to the /api/library-elements/name/:name endpoint, requiring ActionLibraryPanelsRead permission. Prior to this change, the endpoint was not protected by the per-route RBAC check, enabling potential information disclosure of library element names to users without the read permission. The change also includes a test that verifies the route now enforces the read permission. This is a genuine vulnerability fix: it closes an authorization bypass and reduces information leakage by ensuring only users with the proper permission can query library element names.
Commit: a4703d4d Affected: Grafana versions prior to 12.4.0 (e.g., 12.3.x and earlier) 2026-06-30 20:17
grafana/grafana Authorization / Access control HIGH
The commit fixes an authorization vulnerability caused by misaligned per-type relation sets for IAM resources in the OpenFGA-based authorization logic. Previously, flat IAM types shared a full per-object RelationsTyped set (renamed to RelationsFolder) and did not correctly reflect per-type capabilities (e.g., create on users/service-accounts, and subresource relations). This led to incorrect IsValidRelation checks during List/Check/BatchCheck, which could cause invalid calls to fail the entire operation or poison other results in a batch (dropping valid wildcard grants). The patch introduces precise per-type relation sets (RelationsFolder, RelationsTeam, RelationsUser, RelationsServiceAccount, RelationsSubresourceTyped) and adjusts the gating logic so subresource checks are evaluated independently and before base relations. It also restructures checkTyped/listTyped to gate only the direct per-object checks, ensuring valid subresource grants are correctly honored. Added unit tests cover per-type sets and List/Check/BatchCheck interactions, including subresource create behavior and ensuring invalid per-call-site relations no longer break batch processing.
Commit: 7ba958ef Affected: < 12.4.0 2026-06-30 16:28
grafana/grafana Privilege retention / Privilege escalation due to orphaned access records (legacy storage) MEDIUM
The commit adds a cascade cleanup for legacy team_member rows when deleting a team via unified storage. Prior to this change, deleting a team would remove the team row but could leave orphaned legacy membership records in the team_member table. Those leftover rows could allow users to retain access privileges associated with the deleted team, effectively enabling privilege retention/escalation. The patch introduces a DeleteTeamMembersByTeam SQL path and wires it into the DeleteTeam flow to ensure historical membership records are removed alongside the team, preventing privilege retention via orphaned entries.
Commit: 40fd765b Affected: 12.4.0 and earlier 2026-06-30 16:26
kubernetes/kubernetes Information disclosure / cross-request gzip stream state leakage via pooled gzip.Writer MEDIUM
Summary: The commit replaces the previous gzip writer flow for WatchList initial events with a perFlushGzipWriter that pulls a gzip.Writer from a pool, resets it for the current ResponseWriter, and releases it back to the pool after the initial events. The change also adds tests around perFlushGzipWriter behavior and explicitly releases the gzip.Writer back to the pool after initial events. Security impact: This addresses a potential information disclosure / cross-request data leakage risk where a gzip.Writer pool could retain state (buffers, headers, or compressed data) across requests if writers are reused without proper reset and release. By ensuring the writer is Reset with the current ResponseWriter and returned to the pool promptly after initial events, subsequent requests do not observe leftover gzip state from prior responses. Affected code path is in apiserver/pkg/endpoints/handlers/watch.go where gzip writers were previously tied more directly to response objects and could leak state between streaming/watch responses.
Commit: f5fb2e8e Affected: v1.36.0-beta.0 and earlier in the v1.36 branch 2026-06-30 16:17
kubernetes/kubernetes Race condition in admission control / Param resolution during ValidatingAdmissionPolicy evaluation HIGH
The commit fixes a race condition in param resolution for ValidatingAdmissionPolicy. When evaluating a policy-binding, the param (e.g., a ConfigMap) is resolved via an informer cache. If the param is created concurrently and the informer cache has not yet observed the new object, CollectParams may treat the param as NotFound, triggering the ParameterNotFoundAction (which can cause an admission denial or incorrect evaluation). The patch adds a direct API fallback using a dynamic client and RESTMapper to fetch the Param resource when the cache misses, ensuring correct policy evaluation even under race conditions. This is a real vulnerability fix in admission control logic.
Commit: 400e80fa Affected: v1.36.0-beta.0 2026-06-30 16:09
kubernetes/kubernetes Authorization validation bypass / Validation weaknesses in SubjectAccessReview and related resources MEDIUM
This commit implements Declarative Validation (DV) for authorization review API paths (SubjectAccessReview, SelfSubjectAccessReview, LocalSubjectAccessReview). It introduces a scheme-aware DV flow by wiring REST storage with a runtime.Scheme, and by composing handwritten validation with declarative validation in the creation path (ValidateSubjectAccessReviewCreate, ValidateSelfSubjectAccessReviewCreate, ValidateLocalSubjectAccessReviewCreate). The storage REST constructors were updated to accept a scheme, and the authorization rest storages now invoke DV via rest.DeclarativeValidation. The net effect is tighter, scheme-backed validation for authorization requests, reducing the risk of bypassing input validation or misvalidating requests. This appears to be a real security fix rather than a mere dependency bump or test addition.
Commit: 8e8f92c7 Affected: v1.36.0-beta.0 and earlier 2026-06-30 16:08
kubernetes/kubernetes Input validation / Path traversal in object metadata name MEDIUM
The commit enhances input validation during object creation by validating the object metadata (metadata.name) through a path-segment validator (validatePathSegment) via genericvalidation.ValidateObjectMetaAccessor. This change aims to prevent malformed or adversarial resource names from slipping through creation validation, addressing potential security or stability issues such as path traversal or invalid resource handling. It also preserves DeclarativeValidation integration. The update also slightly adjusts the validation ordering to ensure object metadata validation runs after initial strategy validation has passed. While Kubernetes names are generally constrained by DNS labeling rules, this patch adds an explicit name/path validation layer at creation time, which tightens security against edge-case or future-name-policy violations.
Commit: 34c63c39 Affected: <= v1.36.0-beta.0 2026-06-30 15:47
kubernetes/kubernetes Denial of Service (crash) via input validation panic in ResourceSlice validation HIGH
The commit fixes a potential Denial of Service (crash) in ResourceSlice validation by validating that CapacityRequestPolicyRange.validRange.step, when present, is strictly greater than zero. Previously, a zero or negative step could lead to a runtime panic during validation (or related processing), risking a crash or DoS of the API server. The patch adds a guard to reject non-positive steps with a validation error and accompanies tests for zero and negative step values. This indicates a security-hardening fix rather than a mere dependency bump or refactor.
Commit: ad12b979 Affected: <= v1.36.0-beta.0 2026-06-30 15:36
kubernetes/kubernetes Race condition / data race in watch cache indexer mutation HIGH
The commit fixes a race condition in the watch cache where the indexer could be mutated outside the synchronization lock while constructing or returning the latest snapshot. The patch adds a locked/safe path for obtaining the latest snapshot (getLatestSnapshotLocked) and introduces a read-only snapshot wrapper that derives from the indexer without mutating it. This prevents concurrent writers from corrupting the snapshot or readers from observing partially-mutated state, reducing the risk of data corruption, inconsistent reads, or leakage in concurrent scenarios.
Commit: 687fe168 Affected: <= v1.36.0-beta.0 (watch cache indexer mutation could occur outside the lock prior to this fix) 2026-06-30 15:35
kubernetes/kubernetes Information disclosure / Improper routing due to stale connection of webhook client (misrouting) MEDIUM
The commit adds a WebhookRoundTripLoadBalancing feature and a resolvingRoundTripper so admission webhook requests use the resolved endpoint IPs rather than reusing cached connections by service DNS. This mitigates a race between IP changes and cached connections that could cause requests to be routed to stale or unintended endpoints, reducing misrouting risk. It changes the webhook client to either dial the resolved endpoint each request or route via a custom RoundTripper that updates the request to the resolved endpoint, thereby improving routing correctness for webhooks.
Commit: b4e4d2cf Affected: v1.36.0-beta.0 and earlier 2026-06-30 15:26
kubernetes/kubernetes Authorization bypass / Input validation MEDIUM
This commit wires declarative validation into handwritten validation for SubjectAccessReview and related authorization reviews, updating REST handlers to pass scheme/context and composing handwritten validation with declarative validation. It hardens input validation for authorization reviews and reduces the risk of invalid inputs slipping through, thereby reducing potential authorization misconfigurations or bypasses.
Commit: ee1e8358 Affected: < v1.36.0-beta.0 2026-06-30 15:13
kubernetes/kubernetes Input validation HIGH
This commit hardens handling of TerminationGracePeriodSeconds (TGPS) on Pods. Previously, negative TGPS values could slip through conversion paths or rely on implicit defaults, potentially causing incorrect pod lifecycle behavior during termination. The fix moves defaulting out of conversion and into Pod defaults, adds non-negativity validation for TGPS in Pod validation, and ensures decode-defaulting clamps negative values to 1 when reading from storage. It also adds tests for: (a) nonnegative TGPS validation, (b) defaulting behavior in Pod defaults, and (c) compatibility behavior that clamps negative TGPS to 1 when decoding from etcd. Overall, this is a security-hardening input-validation fix to prevent misconfiguration from leading to unpredictable pod termination behavior and potential denial-of-service-like issues.
Commit: 0158de93 Affected: v1.36.0-beta.0 and earlier in the v1.36.x series; tracked version v1.36.0-beta.0 2026-06-30 15:05
kubernetes/kubernetes Privilege escalation / Improper file permissions leading to config tampering MEDIUM
The commit changes the Migrate() behavior so that the destination file permissions are derived from the source file permissions, masked to remove executable bits (sourceInfo.Mode().Perm() & 0666). Previously, the destination file was always created with mode 0666, regardless of the source, which made the migrated file world-writable. A world-writable config file can be tampered with by other users on the same host, potentially allowing an attacker to inject malicious configuration content and, in some scenarios, lead to privilege escalation when a process reads and uses that config. The new behavior reduces privilege risk by aligning the destination permissions with the source (and explicitly removing executable bits) and by ensuring permissions are controlled by the source, not a fixed permissive value. Tests were added to assert that destination permissions mirror source permissions (subject to the 0666 mask).
Commit: d7091ac2 Affected: <= v1.36.0-beta.0 2026-06-30 14:47
grafana/grafana Input Validation HIGH
The commit implements API-layer validation for MT annotations to bound timestamp data. It introduces maxFutureWindow (7 days) and retentionTTL-based past-time bounds, and validates timeEnd relationships. It also moves validation into the API path (Create), with explicit checks for future times, past retention, and timeEnd ordering. Additionally, it adjusts how names are validated and removes in-store implicit name generation. This reduces the risk of accepting invalid or malicious timestamp data that could affect retention, data integrity, or edge-case behavior in annotation handling.
Commit: 936b1d97 Affected: <=12.4.0 2026-06-30 14:20
vercel/next.js Information disclosure MEDIUM
Summary: The commit implements a hardening to prevent server-only modules (notably the server-side implementation of unstable_rethrow) from being bundled into client-browser builds. Prior to this change, the client browser bundle could include server-oriented code paths (e.g., unstable_rethrow.server.ts and related server rendering checks), which risked information disclosure by exposing server internals to the client. The fix removes the server-specific module from the client bundle, introduces a browser-specific variant (unstable-rethrow.browser) and maps the client context to that variant, and deletes the server-only file. This reduces the attack surface by ensuring server internals are not present in client bundles. The triage notes align with this being a boundary/infosec hardening rather than a direct vulnerability in application logic, but it guards against information disclosure via bundled server code. What changed (high-level): - Deleted unstable-rethrow.server.ts and updated unstable-rethrow.ts to document that the browser bundle uses a browser-safe version and that the server logic should not reside in client bundles. - Updated import resolution/mapping to alias to a browser variant for client contexts (e.g., unstable-rethrow.browser) via get_next_client_resolved_map and other import-map style changes. - Adjusted tests to ensure server modules are not bundled into browser chunks. Security impact: By preventing server-only code from leaking into the client bundle, the risk of exposing server internals (error handling logic, server-side checks, dynamic rendering details, etc.) is reduced. This is categorized as Information disclosure related to server internals being surfaced to the client. The fix improves isolation between client and server code paths and reduces potential reconnaissance for attackers. Affected area: The Next.js client-side build and module resolution for unstable_rethrow and related server-side error handling, particularly around how server checks are or are not included in client bundles.
Commit: 85f92319 Affected: < 16.2.2 2026-06-29 19:32
grafana/grafana Authorization / Access control HIGH
The commit extends the Zanzana authorization schema to include create permissions for user and service-account resources. Previously, create operations on these resources were not defined in the authorization checks, which could allow a user with read/list permissions to trigger creation of users or service accounts without proper authorization. This patch ensures that create actions are evaluated by the authorization layer, addressing an authorization/access-control vulnerability related to resource creation.
Commit: 046dd44f Affected: Grafana <= 12.4.0 (prior to this patch) 2026-06-29 16:02
grafana/grafana Authorization/Access Control MEDIUM
The commit fixes an authorization bug in Grafana's RBAC translation by aligning org.users:* actions with the global users:* actions for both read and write scopes. Previously, org-level user-management permissions (org.users:read, org.users:write, org.users:remove) were not consistently reflected in the legacy permissions (users:id:*), which could cause org-level grants not to propagate correctly and lead to misconfigurations or privilege inconsistencies. The patch updates isUserRBACAction and userScopeKind to treat org.users:* actions as org-scoped within the users kind and extends the translation table to include org.users:read, org.users:write, and org.users:remove. This ensures proper reflection of org-level grants back to legacy permissions, improving authorization correctness and reducing potential privilege misconfigurations.
Commit: 9f7c615a Affected: < 12.4.0 2026-06-26 22:53
grafana/grafana Information disclosure / Privilege isolation MEDIUM
The commit hardens multitenancy isolation in AccessControl UID->internal-ID resolution by: (1) caching UID->internal-ID mappings per tenant namespace, (2) using a per-key singleflight to collapse concurrent resolutions, (3) detaching the fetch from the caller context with a bounded timeout, and (4) avoiding caching of zero IDs. Previously, the resolution cache and singleflight key could be based on OrgID, which is not 1:1 with a namespace. Since multiple namespaces can map to the same OrgID (e.g., stacks-N namespaces mapping to OrgID 1), a shared cache/singleflight could collide resolutions across tenants, leading to information disclosure or privilege isolation risks during permission merges. The patch also ensures that failed resolutions and zero IDs are not cached, and that cancellation of one caller does not fail others sharing the flight.
Commit: 5f4a2845 Affected: <=12.4.0 (prior to this fix) 2026-06-26 21:53
torvalds/linux Use-after-free HIGH
The commit fixes a use-after-free condition in the thermal subsystem by ensuring testing module code cannot be executed after the module is removed and by flushing/ordering work items and resources during cleanup. It additionally fixes dangling resources in the Intel thermal_throttle driver by guarding the resource acquisition path and returning the correct error path, preventing use-after-free or use-after-uninit usage. The net effect is removal of a window where testing code or scheduled work could dereference freed objects, i.e., a classic use-after-free risk in the thermal testing path and a safer failure path in the Intel thermal_throttle path.
Commit: 2dec87d0 Affected: v7.0-rc6 and earlier (pre-thermal-7.2-rc1-2 fix) 2026-06-26 21:08
torvalds/linux Privilege escalation / authentication bypass (via inverted IPMI ACPI interface teardown) MEDIUM
The patch fixes an inverted comparison in ipmi_bmc_gone(): the loop originally skipped the matching interface and instead acted on the first device whose ipmi_ifnum was not equal to iface. This could cause the wrong ACPI IPMI interface to be torn down when an interface goes away, potentially leaving the management path in an inconsistent or misconfigured state. While primarily a correctness bug, mishandling of IPMI interfaces can have security implications in terms of access/controls over IPMI interfaces, hence a potential privilege escalation or authentication bypass path under specific conditions.
Commit: cf1e70d0 Affected: v7.0-rc6 and earlier (acpi_ipmi.c path with the inverted interface check) 2026-06-26 20:56
torvalds/linux Memory safety (double-free / use-after-free) and ACL handling vulnerabilities in the SMB3 client HIGH
The commit merges Samba SMB3 client fixes into the Linux kernel SMB/CIFS client and includes multiple security-related memory-safety improvements. The changes address several potential vulnerabilities in the SMB3 client stack, notably: - Removal of potential double-free conditions in replay paths (e.g., query directory replay, change notify replay, SMB2_open/_ioctl/close/flush replay paths) and corresponding memory-management hygiene in receive_encrypted_standard and related code paths. - Correction of memory leaks by properly handling dynamic/buffered responses (dynamic buffers for querydir/readdir, and safe freeing paths for various buffer types). - Safer handling of buffers and error paths when processing compound responses, including proper initialization and reinitialization of response buffers across replay branches. - Improvements to security descriptor/ACL handling in id_mode_to_cifs_acl and related ACL copy/replace logic, including a more robust handling of owner/group SIDs and a guard to avoid applying ACL changes when none are needed, plus better flag management (aclflag) during ACL updates. - Minor fixes around dynamic buffers, error printing, and POSIX extensions handling to prevent incorrect privilege manipulation or misapplied security descriptors. Collectively, these changes reduce risks of memory corruption (double-free/use-after-free), memory leaks, and incorrect ACL/security descriptor handling in SMB3 client operations.
Commit: ad054be8 Affected: <= v7.0-rc6 (prior to this fix); patch landed in v7.2-rc-part2-smb3-client-fixes 2026-06-26 18:41
grafana/grafana Downgrade/Resource exhaustion risk (HTTP protocol negotiation and idle connection binding) MEDIUM
The commit adds security-oriented hardening for Grafana's HTTP client used by the settings service. It introduces an IdleConnTimeout to cap how long idle keep-alive connections are pooled, and it forces HTTP/1.1 when HTTP/2 is disabled by setting NextProtos to http/1.1. These changes reduce the risk of resource exhaustion and protocol downgrade issues caused by idle connections or improper ALPN negotiation. Tests were added to exercise protocol negotiation behavior, reinforcing the mitigation.
Commit: e4fb82c1 Affected: < 12.4.0 2026-06-26 17:53
grafana/grafana Authorization bypass / Information disclosure HIGH
The commit enforces service identity authorization when resolving display metadata (createdBy/updatedBy) by obtaining the requester and using a service-scoped context for the user lookup. This prevents callers without proper permissions from triggering user display-name resolution via ListByIdOrUID, reducing potential information exposure (who created/updated an object) and potential privilege misuse. Prior to this change, display-name resolution could be performed with a less-privileged context, allowing leakage of user identities or names through internal metadata enrichment.
Commit: 6732d0c7 Affected: Grafana <= 12.4.0 (pre-fix) 2026-06-26 11:53
grafana/grafana Information disclosure HIGH
The commit fixes an information disclosure vulnerability where non-user identities could list preferences beyond namespace (org) preferences. Prior to the fix, non-user identities (e.g., service accounts, image renderers) could view user and team preferences as well. The new logic restricts access so that non-user identities may only retrieve namespace preferences, while user identities can view their own user and team preferences. This reduces potential exposure of user and group-level preferences.
Commit: 646446ba Affected: <= 12.3.x (pre-fix); fixed in 12.4.0 2026-06-26 10:50
grafana/grafana Access Control / RBAC HIGH
The commit fixes RBAC/authorization behavior for user-management actions in the Zanzana resolver. Previously, scope translation for user-related actions could be mis-scoped due to hardcoded group/version/resource and simplistic UID-to-ID translation. The patch derives IAM GVRs from resource info (avoiding drift from hardcoded iam.grafana.com) and adds explicit handling to map user-related actions to the correct legacy RBAC scope (global.users vs users), including a special case for users.permissions:read (org-level) and a UID-to-ID translation path for users actions. Tests accompany the change to validate correct scoping and translations. This reduces the risk of over-privilege or incorrect access via mis-scoped permissions in legacy RBAC.
Commit: dd857cc6 Affected: <=12.4.0 (prior to this patch) 2026-06-25 21:47
facebook/react Information Disclosure HIGH
The commit Adds ignore-listed stack frame disclosure in React DevTools by introducing an ignore-list mechanism for stack traces and a UI toggle to show/hide ignored frames. It adds StackTraceGroup and related changes to only render internal frames when the user explicitly opts in, and to hide frames that are marked as ignored by the symbolication layer. This mitigates an information-disclosure risk where internal implementation details and file paths could be visible inDevTools stack traces. By default, suppressed internal frames are not shown, reducing leakage of internal paths and module structure.
Commit: 52912a14 Affected: < 19.2.4 2026-06-25 20:44
grafana/grafana Denial of Service / Resource Exhaustion HIGH
This commit adds strict caps on embedded panel content and dashboard descriptions that are stored via the unified storage embedding path. It introduces maxItemContentBytes (4 KiB) for the combined panel content and maxDescriptionBytes (2 KiB) for panel descriptions, plus a UTF-8 safe truncation helper (truncateUTF8). The goal is to prevent unbounded growth of payloads (e.g., giant SQL queries or verbose descriptions) from being embedded into items, which could otherwise lead to Denial of Service / resource exhaustion scenarios. The changes are accompanied by unit tests verifying that content is truncated to the defined limits and that truncation respects UTF-8 rune boundaries. This is a genuine vulnerability fix, not just a dependency bump or a non-functional cleanup.
Commit: a3551f5c Affected: Affects Grafana Server versions prior to 12.4.0. Fixed in 12.4.0 (includes 12.4.x releases). 2026-06-25 16:47
grafana/grafana Authorization / Access Control HIGH
The commit fixes an authorization-related error handling bug in which a forbidden user lookup could yield HTTP 500 Internal Server Error instead of HTTP 403 Forbidden. The code now detects Kubernetes-style Forbidden errors (k8s.io/apimachinery/pkg/api/errors.IsForbidden) and returns a proper 403 with a clear message ('Access denied to user') instead of leaking internal error information via a 500 response. This reduces information disclosure and ensures correct signaling of access control failures for user lookups. The change touches both middleware (middlewareUserUIDResolver) and specific user endpoints to consistently map forbidden errors to 403.
Commit: ab488725 Affected: < 12.4.0 2026-06-25 14:50
grafana/grafana Authentication/Authorization Bypass, Replay Attack HIGH
The commit replaces direct webhook processing with a provider-agnostic WebhookHandler and a RequestProcessor interface, introducing signature validation (ValidatePayload) and replay protection (seenOrAdd) for inbound GitHub webhooks. Prior to this change, webhook deliveries could potentially be processed without proper authentication and without protection against replayed payloads, enabling spoofed webhook events or repeated triggering of provisioning jobs. The patch enforces HMAC-based signature validation using a configured secret and blocks replayed deliveries, mitigating authentication bypass and replay attack risks. It also refactors the code to normalize inbound webhook events into internal WebhookEvent structures.
Commit: 8553bdf6 Affected: < 12.4.0 2026-06-25 13:47
torvalds/linux DMA access control / memory safety bypass via P2PDMA to non-mappable PCI BARs HIGH
This commit hardens access controls for PCIe P2PDMA by blocking DMA provider creation and CPU access for non_mappable BARs. Specifically: - In pcim_p2pdma_init, if the PCI device has non_mappable_bars set, the function now returns -EOPNOTSUPP, preventing P2PDMA initialization for that device. - In pcim_p2pdma_provider, if non_mappable_bars is set, no provider is created for the given BAR. - The device whitelist is updated to include Intel DSA, IAA, and QAT devices, presumably to permit P2PDMA usage for these devices while still enforcing non_mappable_bars restrictions. - The non_mappable_bars documentation is clarified to indicate that CPU or peer access is restricted, reinforcing that such BARs should not be materialized for DMA by either CPU or P2PDMA. Overall, this is a real vulnerability fix addressing improper DMA access to non-mappable PCI BARs, tightening memory safety and access control for DMA pathways.
Commit: 5ea91594 Affected: <= v7.0-rc6 2026-06-25 09:19
torvalds/linux Memory safety (use-after-free/invalid access during compound-page scanning in page_isolation) MEDIUM
The commit mitigates a memory-safety vulnerability in the page isolation scanner. Previously, page_is_unmovable() could inspect compound pages by using a folio pointer without holding a folio reference or any lock. The folio could be freed, split, or reused while the scanner was still examining it, leading to reads of potentially invalid folio metadata and incorrect calculations. In particular, the original code derived the hstate from folio_size() and computed the scan step from folio_nr_pages() and folio_page_idx(), which assume the folio remains a valid folio head. If the folio changes concurrently, the scanner can read inconsistent metadata and compute a wrong step, and folio_nr_pages() could underflow when the tail/page counts change. There were also risks for non-Hugetlb compound pages where folio_test_lru() could observe a stale folio pointer and trigger VM_BUG_ON_PGFLAGS(). The fix reads the compound order once via compound_order(&folio->page), rejects obviously bogus orders, and derives the hstate and scan step from that order instead of querying folio size information again. It also uses PageLRU(page) (safe for the page being scanned) instead of folio_test_lru() on a potentially stale folio pointer. Additionally, unknown HugeTLB hstates are treated as unmovable so the scanner does not attempt to skip over unstable HugeTLB folios. Overall, this is a defensive memory-safety fix intended to prevent use-after-free/invalid-access scenarios during page isolation scanning.
Commit: 878f4124 Affected: < v7.0-rc6 (pre-fix kernels) 2026-06-25 08:44
flutter/flutter Information disclosure / Local file disclosure via web asset server HIGH
The ReleaseAssetServer in flutter_tools previously scanned three roots (build output, Flutter SDK root, and the project root) to resolve each request. Because the project root and the Flutter SDK root were included in the search without restricting file extensions, arbitrary files under those roots (for example, .env, keystore/signing configs, or SDK internals) could be exposed via the web asset server. The patch tightens these roots to only serve source-map related files (.dart and .map) from the project and SDK roots, while the build/web output remains unrestricted. This fixes an information-disclosure vulnerability where sensitive project/SDK files could be exposed to remote clients when serving release/profile/wasm web builds.
Commit: 5a10393e Affected: <= 1.16.3 2026-06-24 22:35
grafana/grafana Information Disclosure HIGH
The commit adds logic to strip folder-related annotations from V2 resource exports when sharing externally, mitigating an information disclosure risk where internal folder metadata (e.g., AnnoKeyFolder, AnnoKeyFolderTitle, AnnoKeyFolderUrl, and related permission annotations) could be leaked to external consumers. Prior to this change, V2 resource exports could include folder metadata in metadata.annotations, potentially revealing folder structure and access controls. The fix ensures such folder annotations are removed from exported dashboards/resources, thereby reducing leakage of internal folder metadata.
Commit: 64afd72b Affected: Grafana 12.4.0 and earlier (V2 resource export path) 2026-06-24 19:08
traefik/traefik TLS certificate validation: SAN/peer certificate verification improvements (MITM risk reduction) HIGH
The commit adds support for PeerCertSANs and deprecates PeerCertURI to tighten TLS peer certificate verification for backend connections. Previously, backend TLS policy could rely on legacy or insufficient validation (e.g., using PeerCertURI and/or CN) without explicit SAN verification, creating a potential TLS/MITM bypass where a certificate could appear valid despite SANs not being properly validated. The fix introduces explicit SAN-based matching (PeerCertSANs) and deprecates the older PeerCertURI path, updating defaults/docs to ensure SANs are explicitly verified during TLS handshakes.
Commit: b5e7a48b Affected: Versions prior to 3.7.0-ea.3 (3.7.x before this patch) 2026-06-24 18:23
grafana/grafana Information Disclosure MEDIUM
The commit fixes an information disclosure vulnerability related to reading resource history at a deletion resource version (RV). Prior behavior could expose the last pre-delete state of a resource when reading at the RV corresponding to a deletion event. The patch adds handling to treat a deletion event as not found, returning a NotFound error instead of leaking resource data, and it updates tests to cover edge cases around reading at exact RV boundaries (including deletion). This tightens access semantics for historical reads.
Commit: 4b9b73d9 Affected: <= 12.4.0 2026-06-24 17:08
victoriametrics/victoriametrics DoS via log flooding (TLS handshake errors) MEDIUM
This commit adds a tlsErrorSkipLogger to suppress noisy TLS handshake errors in logs originating from health-check probes. The intent is to mitigate log flooding and potential resource exhaustion (DoS) caused by repeated TLS handshake failures, which can occur when health probes repeatedly connect to the TLS port and fail the handshake. The filter inspects log messages and drops those containing "TLS handshake error" when accompanied by EOF or "connection reset by peer". This is a logging-level mitigation rather than a fix to TLS negotiation itself. It reduces log spam and possible DoS caused by log processing, but could obscure legitimate TLS handshake problems if they produce similar log lines. In short, it’s a defensive change to reduce log-based DoS risk without altering TLS behavior.
Commit: ed795a84 Affected: < = 1.139.0 (earlier releases may also be affected) 2026-06-24 14:44
victoriametrics/victoriametrics Information disclosure / improper tenant isolation MEDIUM
Summary: The commit fixes incorrect tenant filtering when long tenant regular expressions are used, which could lead to information disclosure across tenants due to improper tenant isolation. The root cause was that tenant filters were converted to a human-readable string via TagFilter.String(), and for long regexes this representation could be truncated to an ellipsis (...). Such truncated filter representations could be interpreted incorrectly during evaluation, causing tenants to be matched inaccurately and potentially exposing data to unintended tenants. The fix stops relying on the truncated, human-readable form and builds the filter terms using explicit operator handling (equality, inequality, regex, and negative variants) so the full semantics of the filter are preserved regardless of length. It also extends parsing logic (ParseFromMetricExpr) to better preserve filter semantics when converting from metric expressions. Impact: If unpatched, a long tenant regex could cause incorrect tenant matching, exposing data to tenants that should not have access. The patch improves tenant isolation and access control by ensuring long filters are interpreted correctly. This aligns with information-disclosure prevention in multi-tenant contexts.
Commit: 0dd2b2ce Affected: < 1.139.0 2026-06-24 14:39
victoriametrics/victoriametrics Path Traversal / Local File Write during restore HIGH
The commit patches potential path traversal during restore. It validates every source part against the configured storage directory (storageDataPath) to prevent crafted backup object names from writing outside the destination. It also adds a defensive panic in NewDirectWriteCloser if a part would be written outside the storage directory. This addresses a local file write vulnerability via crafted object names in backups (path traversal during restore).
Commit: 710c920d Affected: <= 1.139.0 2026-06-24 14:38
victoriametrics/victoriametrics Information disclosure HIGH
The commit implements a security fix by adding a configuration flag http.header.disableServerHostname to disable the X-Server-Hostname header in HTTP responses. Previously, VictoriaMetrics components always included X-Server-Hostname with the server's hostname in responses, which leaks internal host information. This patch mitigates the information disclosure risk by allowing operators to suppress the header. Tests were added to verify the option's behavior. This is a targeted fix for information disclosure via an HTTP response header.
Commit: 892f4ace Affected: 1.139.0 and earlier 2026-06-24 14:38
facebook/react XSS (DOM-based HTML injection) HIGH
The fix mitigates a potential XSS in the standalone DevTools error rendering by replacing innerHTML-based HTML construction with DOM nodes and textContent. Previously, error messages were interpolated directly into an HTML string and assigned to innerHTML, which could allow HTML/JS injection if the error message came from an untrusted source. The patch now builds the error box using DOM elements and sets textContent for header and content, ensuring any embedded HTML is treated as text.
Commit: 99e86060 Affected: 19.2.0 - 19.2.3 2026-06-23 20:20
grafana/grafana Authorization bypass / improper access control for singleton creation HIGH
The commit fixes an authorization bypass by restricting creation of the per-org Alerting Config singleton to the service identity only. Previously, non-service actors with create permissions could create or seed the singleton via the API, potentially enabling unauthorized configuration of per-org alerting settings. The patch seeds the singleton via the sync worker when the UID is not configured and denies create for non-service identities; only the seeder (service identity) may create, while humans/GitOps can only update an already-seeded object. It also introduces a NotConfigured state for the sync path and updates tests accordingly.
Commit: fdd08202 Affected: 12.4.0 and earlier (Grafana 12.x line prior to this fix) 2026-06-23 14:38
grafana/grafana Privilege Escalation / Access Control Bypass in RBAC (unmapped resources folder-scoped). HIGH
The commit adds folder-scoped authorization checks for resources that are not present in the RBAC mapper (mapper miss). Prior to this patch, wildcard resource grants (scope: "*") could be used to bypass folder-scoped access control on unmapped resources, enabling privilege escalation. The fix introduces a dedicated path listPermissionWithFolderAuthz to enforce that access is granted only when both a resource-level stack role (scope: "") exists and the user has appropriate folder grants. It prevents wildcard grants from automatically authorizing access to folder-scoped resources that are not mapped in the RBAC mapper.
Commit: b9b897b3 Affected: <= 12.3.x (pre-12.4.0) 2026-06-23 10:35
grafana/grafana Denial of Service (resource exhaustion) HIGH
The commit patches a potential Denial of Service (resource exhaustion) in Grafana provisioning. Previously, selective export (push and migrate) would fetch each explicitly listed resource individually, which meant that an unbounded or very large resources list could cause unbounded per-resource lookups and heavy CPU/memory usage. The fix caps the number of explicitly requested resources to 100 and validates this cap at admission time, preventing oversized provisioning jobs from entering processing and thereby mitigating DoS risk. Tests were added to verify behavior at and beyond the limit.
Commit: 07aba4d7 Affected: < 12.4.0 2026-06-22 13:53
grafana/grafana Authorization / Access control correctness HIGH
The commit fixes an authorization/batch-check bug in user search. The code previously included access-control checks for verbs that are not defined on the authz model's user type (e.g., org.users:add / VerbCreate and users.permissions:read / VerbGetPermissions). When performing batch access-control checks for user search, evaluating an unsupported verb can cause the batch to fail (e.g., reporting that a relation is not found) and blank out AccessControl metadata for results. This could lead to incorrect authorization decisions or information disclosure during user search. The patch removes unsupported verbs from the batch checks, guards the tests to only use verbs defined for the user type, and introduces a test ensuring only supported verbs are used.
Commit: 5c28fb2e Affected: 12.0.0 - 12.3.x (prior to fix in 12.4.0) 2026-06-22 13:50
grafana/grafana Authorization bypass / Access control MEDIUM
The commit introduces a centralized helper isItemManagedByRepository and replaces ad-hoc checks (e.g., folder.managedBy, AnnoKeyManagerKind annotations) across provisioning-related UI and API paths with this helper. This rework fixes potential authorization/privacy gaps where resources could be misclassified as repository-managed, leading to incorrect visibility or provisioning permissions. By consolidating the authorization logic for determining whether a resource (folder/dashboard) is managed by the repository, the patch reduces the risk of bypasses in provisioning flows and access control decisions.
Commit: 0b3b7669 Affected: All Grafana versions prior to 12.4.0 (i.e., <=12.3.x). 2026-06-22 13:50
grafana/grafana Authorization bypass / RBAC naming consistency HIGH
The commit adds a canonical alias for the default routing tree name and canonicalization helpers, wiring them into authorization/identity checks and API responses. It ensures that the default routing tree can be referenced via both the legacy name and the new alias without changing the underlying RBAC identity, and it reserves both names to prevent creation as managed routes. This addresses potential RBAC/name-based authorization inconsistencies where clients could refer to the default routing tree using different names, leading to inconsistent authorization behavior or unintended access. The changes stabilize RBAC scopes by enforcing a single internal identity for the default routing tree while preserving the canonical input/output experience for clients.
Commit: 6a7421ba Affected: < 12.4.0 (prior Grafana 12.x releases before this fix) 2026-06-19 17:47
grafana/grafana Information Disclosure MEDIUM
The commit implements a feature flag (frontendService.reducedBootDataAPI) to control whether the frontend receives the full frontend settings. Previously, Grafana shipped full frontend settings to the frontend by default (via window.grafanaBootData.settings), which could leak sensitive configuration and build/license information. The fix moves the full settings behind a feature flag and defaults to sending reduced boot data, mitigating information disclosure. The changebase also wires the flag through the request/config path and adjusts the HTML boot data accordingly.
Commit: a3568349 Affected: 12.4.0 and earlier (pre-fix releases in the 12.x line) 2026-06-19 12:47