Skip to content

[Aikido] Fix 3 critical issues in jackc/pgx/v5 and 61 other issues - #74

Open
aikido-autofix[bot] wants to merge 1 commit into
mainfrom
fix/aikido-security-update-packages-97548600-padh
Open

[Aikido] Fix 3 critical issues in jackc/pgx/v5 and 61 other issues#74
aikido-autofix[bot] wants to merge 1 commit into
mainfrom
fix/aikido-security-update-packages-97548600-padh

Conversation

@aikido-autofix

@aikido-autofix aikido-autofix Bot commented Aug 26, 2026

Copy link
Copy Markdown

Description

Upgrade dependencies to fix critical SSH vulnerabilities including authorization bypass, resource exhaustion DoS, FIDO key verification bypass, integer overflow, and CA key revocation bypass.

Motivation

Security Impact — CVE vulnerabilities fixed by this PR:

✅ 64 CVEs resolved by this upgrade, including 17 critical 🚨 CVEs

This PR will resolve the following CVEs:

Issue Severity           Description
AIKIDO-2026-11022
🚨 CRITICAL
[golang.org/x/crypto] Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped.
AIKIDO-2026-11025
🚨 CRITICAL
[golang.org/x/crypto] A malicious SSH peer can send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop and causing a resource leak that cannot be released by Close(). This results in a denial of service through goroutine exhaustion.
AIKIDO-2026-11029
🚨 CRITICAL
[golang.org/x/crypto] The Verify() method for FIDO/U2F security keys fails to check the User Presence flag, allowing signatures generated without physical touch to be accepted. This enables unauthorized unattended use of hardware security keys, bypassing intended physical authentication requirements.
AIKIDO-2026-11028
🚨 CRITICAL
[golang.org/x/crypto] An integer overflow in SSH channel write operations causes an infinite loop when writing data larger than 4GB in a single call, resulting in denial of service through empty packet transmission. The vulnerability has been fixed by using int64 for size comparisons to prevent truncation.
AIKIDO-2026-11027
🚨 CRITICAL
[golang.org/x/crypto] Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for Revoked.
AIKIDO-2026-11034
🚨 CRITICAL
[golang.org/x/crypto] A keyring implementation silently ignored the ConfirmBeforeUse constraint on keys, allowing unauthorized signing without prompts or caller notification. This has been fixed to return an error when unsupported constraints are requested.
AIKIDO-2026-11033
🚨 CRITICAL
[golang.org/x/crypto] SSH agent key constraint extensions were not serialized when adding keys to remote agents, allowing destination restrictions to be silently stripped and keys to be used without restrictions on remote hosts. The vulnerability has been fixed by serializing all constraint extensions and rejecting keys with unsupported constraints.
CVE-2026-39830
🚨 CRITICAL
[golang.org/x/crypto] A malicious SSH peer can send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop and causing a resource leak that cannot be released by Close(). This results in a denial of service through goroutine exhaustion.
CVE-2026-39831
🚨 CRITICAL
[golang.org/x/crypto] The Verify() method for FIDO/U2F security keys fails to check the User Presence flag, allowing signatures generated without physical touch to be accepted. This enables unauthorized unattended use of hardware security keys, bypassing intended physical authentication requirements.
CVE-2026-39834
🚨 CRITICAL
[golang.org/x/crypto] An integer overflow in SSH channel write operations causes an infinite loop when writing data larger than 4GB in a single call, resulting in denial of service through empty packet transmission. The vulnerability has been fixed by using int64 for size comparisons to prevent truncation.
CVE-2026-39828
HIGH
[golang.org/x/crypto] An SSH server authentication callback that returns PartialSuccessError with non-nil Permissions silently discards those permissions, potentially bypassing certificate restrictions like force-command after second factor authentication succeeds. This vulnerability allows attackers to bypass security restrictions.
CVE-2026-39832
HIGH
[golang.org/x/crypto] SSH agent key constraint extensions were not serialized when adding keys to remote agents, allowing destination restrictions to be silently stripped and keys to be used without restrictions on remote hosts. The vulnerability has been fixed by serializing all constraint extensions and rejecting keys with unsupported constraints.
AIKIDO-2026-11032
HIGH
[golang.org/x/crypto] An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs.
CVE-2026-39829
HIGH
[golang.org/x/crypto] RSA and DSA public key parsers lack size limits, allowing crafted keys with excessively large parameters to consume CPU for minutes during signature verification. This enables unauthenticated denial-of-service attacks during public key authentication.
CVE-2026-39835
HIGH
[golang.org/x/crypto] SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil.
CVE-2026-46597
HIGH
[golang.org/x/crypto] An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs.
CVE-2026-42508
HIGH
[golang.org/x/crypto] Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for Revoked.
CVE-2026-46595
HIGH
[golang.org/x/crypto] Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped.
AIKIDO-2026-11026
MEDIUM
[golang.org/x/crypto] An authenticated SSH client can cause unbounded memory growth by repeatedly opening rejected channels, leading to server crashes and denial of service for all connected users. The vulnerability has been fixed by properly removing rejected channels from internal state.
CVE-2026-39827
MEDIUM
[golang.org/x/crypto] An authenticated SSH client can cause unbounded memory growth by repeatedly opening rejected channels, leading to server crashes and denial of service for all connected users. The vulnerability has been fixed by properly removing rejected channels from internal state.
AIKIDO-2026-11031
MEDIUM
[golang.org/x/crypto] An SSH server authentication callback that returns PartialSuccessError with non-nil Permissions silently discards those permissions, potentially bypassing certificate restrictions like force-command after second factor authentication succeeds. This vulnerability allows attackers to bypass security restrictions.
CVE-2026-39833
MEDIUM
[golang.org/x/crypto] A keyring implementation silently ignored the ConfirmBeforeUse constraint on keys, allowing unauthorized signing without prompts or caller notification. This has been fixed to return an error when unsupported constraints are requested.
AIKIDO-2026-11023
MEDIUM
[golang.org/x/crypto] For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used.
CVE-2026-46598
MEDIUM
[golang.org/x/crypto] For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used.
AIKIDO-2026-11024
LOW
[golang.org/x/crypto] RSA and DSA public key parsers lack size limits, allowing crafted keys with excessively large parameters to consume CPU for minutes during signature verification. This enables unauthenticated denial-of-service attacks during public key authentication.
AIKIDO-2026-11030
LOW
[golang.org/x/crypto] SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil.
CVE-2026-33816
🚨 CRITICAL
[github.com/jackc/pgx/v5] Memory-safety vulnerability in github.com/jackc/pgx/v5.
CVE-2026-41889
🚨 CRITICAL
[github.com/jackc/pgx/v5] SQL injection vulnerability exists when using the non-default simple protocol with dollar-quoted string literals containing attacker-controllable placeholder-like text. This allows remote code execution through malicious SQL injection.
CVE-2026-33815
🚨 CRITICAL
[github.com/jackc/pgx/v5] Memory-safety vulnerability in github.com/jackc/pgx/v5.
AIKIDO-2026-11039
🚨 CRITICAL
[golang.org/x/net] Punycode validation bypass in idna functions allows ASCII-only labels to be incorrectly accepted, enabling privilege escalation when hostname validation is bypassed through encoded domain names. An attacker could exploit inconsistent validation between encoded and decoded hostnames to circumvent access controls.
CVE-2026-39821
🚨 CRITICAL
[golang.org/x/net] Punycode validation bypass in idna functions allows ASCII-only labels to be incorrectly accepted, enabling privilege escalation when hostname validation is bypassed through encoded domain names. An attacker could exploit inconsistent validation between encoded and decoded hostnames to circumvent access controls.
CVE-2026-33814
HIGH
[golang.org/x/net] When processing HTTP/2 SETTINGS frames, transport will enter an infinite loop of writing CONTINUATION frames if it receives a SETTINGS_MAX_FRAME_SIZE with a value of 0.
CVE-2026-46600
HIGH
[golang.org/x/net] Parsing an invalid SVCB or HTTPS RR can panic when the size of a parameter value overflows the message buffer.
AIKIDO-2026-11035
MEDIUM
[golang.org/x/net] Parsing arbitrary HTML which is then rendered using Render can result in an unexpected HTML tree. This can be leveraged to execute XSS attacks in applications that attempt to sanitize input HTML before rendering.
AIKIDO-2026-11036
MEDIUM
[golang.org/x/net] The HTML parser mishandled character references in DOCTYPE nodes, causing them to be incorrectly rendered. This can lead to XSS when rendering parsed HTML.
AIKIDO-2026-11038
MEDIUM
[golang.org/x/net] The HTML parser mishandled certain HTML elements in foreign content, causing them to be incorrectly rendered. This can lead to XSS when rendering parsed HTML.
AIKIDO-2026-11040
MEDIUM
[golang.org/x/net] Parsing arbitrary HTML which is then rendered using Render can result in an unexpected HTML tree. This can be leveraged to execute XSS attacks in applications that attempt to sanitize input HTML before rendering.
CVE-2026-42506
MEDIUM
[golang.org/x/net] Parsing arbitrary HTML which is then rendered using Render can result in an unexpected HTML tree. This can be leveraged to execute XSS attacks in applications that attempt to sanitize input HTML before rendering.
CVE-2026-25681
MEDIUM
[golang.org/x/net] Parsing arbitrary HTML which is then rendered using Render can result in an unexpected HTML tree. This can be leveraged to execute XSS attacks in applications that attempt to sanitize input HTML before rendering.
CVE-2026-27136
MEDIUM
[golang.org/x/net] Parsing arbitrary HTML which is then rendered using Render can result in an unexpected HTML tree. This can be leveraged to execute XSS attacks in applications that attempt to sanitize input HTML before rendering.
CVE-2026-42502
MEDIUM
[golang.org/x/net] Parsing arbitrary HTML which is then rendered using Render can result in an unexpected HTML tree. This can be leveraged to execute XSS attacks in applications that attempt to sanitize input HTML before rendering.
AIKIDO-2026-11037
LOW
[golang.org/x/net] Parsing arbitrary HTML can consume excessive CPU time, possibly leading to denial of service.
CVE-2026-25680
LOW
[golang.org/x/net] Parsing arbitrary HTML can consume excessive CPU time, possibly leading to denial of service.
CVE-2026-33186
🚨 CRITICAL
[google.golang.org/grpc] Improper HTTP/2 :path validation allows requests without leading slashes to bypass path-based authorization interceptors, enabling attackers to circumvent "deny" rules and access restricted gRPC methods. This authorization bypass affects servers using path-based RBAC policies with fallback "allow" rules.
GHSA-hrxh-6v49-42gf
HIGH
[google.golang.org/grpc] Three vulnerabilities affect xDS RBAC authorization and HTTP/2 transport: authorization bypass when unsupported Metadata/RequestedServerName matchers are silently ignored, denial of service via HTTP/2 Rapid Reset mitigation bypass causing high CPU, and server panic when NOT rules wrap unsupported fields in RBAC policies.
GHSA-r277-6w6q-xmqw
🚨 CRITICAL
[github.com/getkin/kin-openapi] ValidationHandler.Load() silently replaces a nil AuthenticationFunc with NoopAuthenticationFunc, which always approves security checks, allowing unauthenticated attackers to bypass all OpenAPI security requirements. This authentication bypass affects applications relying on ValidationHandler as their enforcement middleware without explicitly setting AuthenticationFunc.
CVE-2026-77354
HIGH
[github.com/getkin/kin-openapi] A deepObject query parameter vulnerability allows unauthenticated attackers to trigger excessive heap allocation by supplying sparse array indexes, causing denial of service through out-of-memory conditions before schema validation can occur. The flaw affects array parameters in OpenAPI endpoints and can be exploited with minimal input like param[items][50000000]=x.
CVE-2026-76905
HIGH
[github.com/getkin/kin-openapi] A nil pointer dereference in error handling causes a panic when processing malformed multipart/form-data requests with non-string scalar fields, allowing unauthenticated denial of service attacks. The vulnerability affects applications using openapi3filter's error-rendering helpers (ConvertErrors or ValidationErrorEncoder) but not those using JSON request bodies.
AIKIDO-2025-10586
MEDIUM
[github.com/getkin/kin-openapi] Affected versions of this package are vulnerable to path traversal in the ReadFromFile function due to insufficient input sanitization, allowing attackers to access files outside the intended directory.
CVE-2026-73502
MEDIUM
[github.com/getkin/kin-openapi] A NULL-pointer-dereference vulnerability in request validation occurs when an operation declares a content parameter with application/json media type but no schema, causing a denial of service through request panic or process crash.
CVE-2026-56865
HIGH
[golang.org/x/mod] A malicious GOPROXY can forge sumdb tiles to bypass GOSUMDB verification and inject malicious module content into the local Go module cache, enabling undetected code execution through compromised dependencies.
GHSA-q382-vc8q-7jhj
HIGH
[github.com/modelcontextprotocol/go-sdk] The JSON parser treated keys with null Unicode characters as equivalent to base strings, allowing duplicate keys to override intended MCP messages and bypass intermediary inspection. This created cross-implementation inconsistency with other SDKs that use case-sensitive parsing, potentially enabling security-boundary confusion.
CVE-2026-34742
HIGH
[github.com/modelcontextprotocol/go-sdk] The MCP Go SDK lacks DNS rebinding protection by default on HTTP-based localhost servers without authentication, allowing malicious websites to bypass same-origin policy and invoke tools or access resources. This enables attackers to perform unauthorized actions on behalf of users in affected deployments.
CVE-2026-27896
HIGH
[github.com/modelcontextprotocol/go-sdk] The SDK's JSON parsing was case-insensitive, violating JSON-RPC 2.0 specification and allowing malicious peers to send protocol messages with non-standard field casing that bypass intermediary inspection. This has been fixed with case-sensitive JSON decoding.
CVE-2026-33252
MEDIUM
[github.com/modelcontextprotocol/go-sdk] The Streamable HTTP transport fails to validate the Origin header and Content-Type on POST requests, allowing cross-site requests to trigger MCP operations. In deployments without authorization, this enables arbitrary websites to execute tools on a local server via CSRF attacks.
CVE-2026-33997
HIGH
[github.com/docker/docker] A privilege validation bypass in plugin installation allows the daemon to incorrectly accept unapproved privilege sets due to flawed comparison logic, enabling plugins to gain unintended elevated permissions.
CVE-2026-42306
HIGH
[github.com/docker/docker] A race condition in docker cp mount setup allows a malicious container to redirect bind mount targets to arbitrary host paths, enabling arbitrary file overwriting or denial of service attacks.
CVE-2026-41568
MEDIUM
[github.com/docker/docker] A race condition in docker cp mount setup allows a malicious container to create empty files or directories at arbitrary absolute paths on the host filesystem, enabling local privilege escalation and host compromise.
AIKIDO-2026-139363
HIGH
[github.com/moby/go-archive] Path traversal vulnerability in archive extraction functions allows crafted symlinks and hardlinks to escape the intended extraction directory through lexical path comparison instead of resolved path validation, enabling arbitrary file creation or overwriting.
CVE-2026-17106
HIGH
[github.com/moby/go-archive] Tar extraction routines fail to confine filesystem operations to the destination directory, allowing symlink/hardlink traversal attacks. An attacker controlling archive contents can create or overwrite arbitrary files writable by the extracting process.
CVE-2026-56852
HIGH
[golang.org/x/text] A norm.Iter can enter an infinite loop when handling input containing invalid UTF-8 bytes.
CVE-2026-29181
HIGH
[go.opentelemetry.io/otel] Baggage header extraction parses multiple header values independently and aggregates them, allowing attackers to amplify CPU and memory usage by sending many baggage headers despite per-value size limits. This results in a denial-of-service vulnerability through resource exhaustion.
CVE-2026-24051
HIGH
[go.opentelemetry.io/otel/sdk] Path hijacking vulnerability in resource detection code allows local attackers to execute arbitrary code by manipulating the PATH environment variable on macOS systems.
CVE-2026-39883
HIGH
[go.opentelemetry.io/otel/sdk] A PATH hijacking vulnerability exists in the BSD kenv command execution, allowing attackers to execute arbitrary code by manipulating the PATH environment variable. This enables remote code execution on BSD and Solaris platforms.

Type of change (choose one)

  • Chore (refactors, upgrades, etc.)
  • Bug fix (non-breaking change that fixes an issue)
  • Security fix (non-breaking change that fixes a potential vulnerability)
  • Docs
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality not to work as expected)

Checklist

  • I've linked any associated issues to this PR.
  • I've tested my own changes.

Check our Pull Request Guidelines


Note

High Risk
Wide dependency upgrades touch Postgres (pgx), gRPC authorization, OpenAPI validation, SSH/crypto, and Docker/archive code paths with no accompanying code changes—regression and the grpc 1.81.0-dev pin warrant careful CI and integration testing.

Overview
This PR is a dependency-only update: go.mod and go.sum change with no application source edits.

The module now targets Go 1.25.0 (from 1.24.0) and drops the explicit toolchain pin. Direct and transitive dependencies are refreshed to address a large set of reported CVEs, especially in networking, crypto, and data-access stacks.

Notable direct bumps include github.com/jackc/pgx/v5 (5.5.4 → 5.9.2), golang.org/x/crypto, golang.org/x/net, google.golang.org/grpc (1.73.0 → 1.81.0-dev), github.com/getkin/kin-openapi (0.132.0 → 0.144.0), github.com/modelcontextprotocol/go-sdk, go.opentelemetry.io/otel (and related sdk/metric/trace packages to 1.43.0), github.com/golang-jwt/jwt/v5, and github.com/docker/docker / github.com/moby/go-archive via testcontainers. Several OpenAPI-related indirect dependencies also shift (e.g. removal of some go-openapi/swag / mailru/easyjson paths, new santhosh-tekuri/jsonschema and segmentio/encoding entries).

Reviewers should treat this as a broad supply-chain security refresh with regression risk from the gRPC pre-release bump and major version jumps in libraries used for Postgres (pgx), OpenAPI tooling, MCP, and container/archive handling in tests.

Reviewed by Cursor Bugbot for commit 112346f. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 112346f. Configure here.

Comment thread go.mod
google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822
google.golang.org/grpc v1.73.0
google.golang.org/protobuf v1.36.10

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vendor tree left unpatched

High Severity

go.mod and go.sum bump patched libraries (for example pgx, x/crypto, kin-openapi, grpc), but vendor/ still pins the old vulnerable versions. The main Dockerfile builds with GOFLAGS=-mod=vendor, so Docker images keep shipping the unpatched deps this PR claims to fix.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 112346f. Configure here.

Comment thread go.mod
gonum.org/v1/gonum v0.17.0
google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478
google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478
google.golang.org/grpc v1.81.0-dev

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unstable gRPC pre-release pinned

High Severity

google.golang.org/grpc is pinned to v1.81.0-dev, a master development tag, while stable v1.81.0 already exists. The -dev tag is far behind the release and omits later fixes, so production gets an unfinished, moving pre-release instead of the intended patched gRPC.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 112346f. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants