Skip to content

chore(deps): update gitlab-runner to v18.11.0#20893

Merged
nicholasdille merged 1 commit intomainfrom
renovate/gitlab-runner-18.x
Apr 17, 2026
Merged

chore(deps): update gitlab-runner to v18.11.0#20893
nicholasdille merged 1 commit intomainfrom
renovate/gitlab-runner-18.x

Conversation

@uniget-bot
Copy link
Copy Markdown

This PR contains the following updates:

Package Update Change
gitlab-runner minor 18.10.118.11.0

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

gitlab-org/gitlab-runner (gitlab-runner)

v18.11.0

Compare Source

New features
  • Consolidate the HTTP Status Code field !6492
  • Change the concrete helper image to use shell-form CMD !6591
  • Cache AssumeRole credentials to reduce STS requests !6549
  • Implement Concrete CI Function !6410
  • Add logging field validator CI job !6580
  • Fix default artifacts upload timeout values !6584
  • Add k8s nodename to pod phase output !6311 (Thorsten Banhart @​banhartt)
  • Add native steps job counter metric !6369
  • Bundle git and CA certificates for concrete runner !6504
  • Update builtins to use step-runner BuiltinContext interface !6616
  • Add seccomp and AppArmor profile support to Kubernetes executor security context !6512 (Marc Ullman @​MarcUllman)
  • Kubernetes: add PodDisruptionBudget support for job pods !6331
  • Pass socket path from step-runner serve to proxy command !6507
  • Resolve "Windows Runners: Document "session 0" restrictions (screen resolution statically set to 1024x768)" !4994
  • Kubernetes: autoscaler for idle capacity via pause pods !6334
Bug fixes
  • Update FF_SCRIPT_SECTIONS documentation to reflect current behavior !6519 (Pishel65 @​pishel65)
  • Rate-limit and instrument S3 AssumeRole calls !6528
  • Cache/s3v2: cache S3 client to reduce IMDS requests !6530
  • PowerShell/Pwsh environment variables can't process special characters in their names. !6502 (Pishel65 @​pishel65)
  • Fix proxy-mask credential store file permissions on Unix !6510
  • Fix disable_cache disabling all volumes instead of only cache !6552 (Aaron Döppner @​aarondpn-sp)
  • Restore fixed runner command path !6529
  • Use custom endpoint in detectBucketLocation !6532
  • Log warning when DOCKER_AUTH_CONFIG credentials resolution fails !6578
  • Properly escape ANSI color codes in shell scripts !6527
  • Improve step_script to bring it on part with Runner legacy path !6596
  • Revert "Remove GPG signing color" !6554
Maintenance
  • No global executors !6508
  • Patch(cache): ensure cache exists before uploading !6569
  • Highlight actively developed executors !6585
  • Bump up runner images version to 0.0.38 !6541
  • Cache: rename local artifact when FF_HASH_CACHE_KEYS is toggled !6546
  • Update Windows backward compatibility support !6523 (Pishel65 @​pishel65)
  • Add Support for Windows Server 24H2 !6522 (Pishel65 @​pishel65)
  • Add Pipeline Security group as code owners for secrets managers !6474
  • Link to main branch for runner-helper Dockerfiles !6533 (Sven Hoexter @​hoexter)
  • Standardize runner capitalization in Docker Machine autoscale docs !6615
  • Adding test for new alert format !6550
  • Update CI components !6517
  • Fix autoscale documentation typos !6611 (Bob Singh @​bobsingh.dev)
  • Add boundary test cases for statusClass !6551 (Bob Singh @​bobsingh.dev)
  • Pilot runners failover !6536
  • Remove all references to PackageCloud !6514
  • Add Duo Workflow agent configuration and instructions !6588
  • Properly support Job Router FF from runner config !6545
  • AI Translated Documentation Push: GITTECHA-610 !6577
  • Docs(docker-machine): update docs !6534
  • Creating documentation about Windows helper images !6525 (Pishel65 @​pishel65)
  • Documented fallback correlation ID !6531
  • Docs maintenance: Fix and update broken URLs !6526
  • Revert "Merge branch 'malvarez-consolidate-http-status-code-field' into 'main'" !6524
  • Removing the mention of packagecloud !6582
  • Fix alert boxes in translated documentation !6595
  • Changing warning format !6539
  • Rename Kubernetes Agent Server to GitLab Relay (KAS) !6583
  • Document interactive desktop requirement for Windows GUI tests !6571
  • Clarify post_build_script and after_script execution behavior !6573
  • Update RPM package naming from amd64 to x86_64 !6543
  • Updating note format !6537
  • Tidy up Markdown in documentation !6520

Configuration

📅 Schedule: (in timezone Europe/Berlin)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@github-actions
Copy link
Copy Markdown

🔍 Vulnerabilities of ghcr.io/uniget-org/tools/gitlab-runner:18.11.0

📦 Image Reference ghcr.io/uniget-org/tools/gitlab-runner:18.11.0
digestsha256:62b4b2d9aaf54155e6852115a79821876a650e6832086d3d8591d39c6462d423
vulnerabilitiescritical: 2 high: 11 medium: 10 low: 2
platformlinux/amd64
size33 MB
packages355
critical: 1 high: 1 medium: 1 low: 0 github.com/docker/docker 28.5.2+incompatible (golang)

pkg:golang/github.com/docker/docker@28.5.2%2Bincompatible

critical : CVE--2024--41110

Affected range>=19.0.0
<19.03.16
Fixed version19.03.16
EPSS Score4.028%
EPSS Percentile88th percentile
Description

Moby authz zero length regression in github.com/moby/moby

high 8.8: CVE--2026--34040 Authentication Bypass Using an Alternate Path or Channel

Affected range<29.3.1
Fixed versionNot Fixed
CVSS Score8.8
CVSS VectorCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
EPSS Score0.014%
EPSS Percentile2nd percentile
Description

Summary

A security vulnerability has been detected that allows attackers to bypass authorization plugins (AuthZ) under specific circumstances. The base likelihood of this being exploited is low.

This is an incomplete fix for CVE-2024-41110.

Impact

If you don't use AuthZ plugins, you are not affected.

Using a specially-crafted API request, an attacker could make the Docker daemon forward the request to an authorization plugin without the body. The authorization plugin may allow a request which it would have otherwise denied if the body had been forwarded to it.

Anyone who depends on authorization plugins that introspect the request body to make access control decisions is potentially impacted.

Workarounds

If unable to update immediately:

  • Avoid using AuthZ plugins that rely on request body inspection for security decisions.
  • Restrict access to the Docker API to trusted parties, following the principle of least privilege.

Credits

  • 1seal / Oleh Konko (@1seal)
  • Cody (c@wormhole.guru)
  • Asim Viladi Oglu Manizada (@manizada)

Resources

medium 6.8: CVE--2026--33997 Off-by-one Error

Affected range<29.3.1
Fixed versionNot Fixed
CVSS Score6.8
CVSS VectorCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N
EPSS Score0.013%
EPSS Percentile2nd percentile
Description

Summary

A security vulnerability has been detected that allows plugins privilege validation to be bypassed during docker plugin install. Due to an error in the daemon's privilege comparison logic, the daemon may incorrectly accept a privilege set that differs from the one approved by the user.

Plugins that request exactly one privilege are also affected, because no comparison is performed at all.

Impact

If plugins are not in use, there is no impact.

When a plugin is installed, the daemon computes the privileges required by the plugin's configuration and compares them with the privileges approved during installation. A malicious plugin can exploit this bug so that the daemon accepts privileges that differ from what was intended to be approved.

Anyone who depends on the plugin installation approval flow as a meaningful security boundary is potentially impacted.

Depending on the privilege set involved, this may include highly sensitive plugin permissions such as broad device access.

For consideration: exploitation still requires a plugin to be installed from a malicious source, and Docker plugins are relatively uncommon. Docker Desktop also does not support plugins.

Workarounds

If unable to update immediately:

  • Do not install plugins from untrusted sources
  • Carefully review all privileges requested during docker plugin install
  • Restrict access to the Docker daemon to trusted parties, following the principle of least privilege
  • Avoid relying on plugin privilege approval as the only control boundary for sensitive environments

Credits

  • Reported by Cody (c@wormhole.guru, PGP 0x9FA5B73E)
critical: 1 high: 0 medium: 0 low: 0 google.golang.org/grpc 1.79.2 (golang)

pkg:golang/google.golang.org/grpc@1.79.2

critical 9.1: CVE--2026--33186 Improper Authorization

Affected range<1.79.3
Fixed version1.79.3
CVSS Score9.1
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score0.016%
EPSS Percentile3rd percentile
Description

Impact

What kind of vulnerability is it? Who is impacted?

It is an Authorization Bypass resulting from Improper Input Validation of the HTTP/2 :path pseudo-header.

The gRPC-Go server was too lenient in its routing logic, accepting requests where the :path omitted the mandatory leading slash (e.g., Service/Method instead of /Service/Method). While the server successfully routed these requests to the correct handler, authorization interceptors (including the official grpc/authz package) evaluated the raw, non-canonical path string. Consequently, "deny" rules defined using canonical paths (starting with /) failed to match the incoming request, allowing it to bypass the policy if a fallback "allow" rule was present.

Who is impacted?
This affects gRPC-Go servers that meet both of the following criteria:

  1. They use path-based authorization interceptors, such as the official RBAC implementation in google.golang.org/grpc/authz or custom interceptors relying on info.FullMethod or grpc.Method(ctx).
  2. Their security policy contains specific "deny" rules for canonical paths but allows other requests by default (a fallback "allow" rule).

The vulnerability is exploitable by an attacker who can send raw HTTP/2 frames with malformed :path headers directly to the gRPC server.

Patches

Has the problem been patched? What versions should users upgrade to?

Yes, the issue has been patched. The fix ensures that any request with a :path that does not start with a leading slash is immediately rejected with a codes.Unimplemented error, preventing it from reaching authorization interceptors or handlers with a non-canonical path string.

Users should upgrade to the following versions (or newer):

  • v1.79.3
  • The latest master branch.

It is recommended that all users employing path-based authorization (especially grpc/authz) upgrade as soon as the patch is available in a tagged release.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

While upgrading is the most secure and recommended path, users can mitigate the vulnerability using one of the following methods:

1. Use a Validating Interceptor (Recommended Mitigation)

Add an "outermost" interceptor to your server that validates the path before any other authorization logic runs:

func pathValidationInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) {
    if info.FullMethod == "" || info.FullMethod[0] != '/' {
        return nil, status.Errorf(codes.Unimplemented, "malformed method name")
    }   
    return handler(ctx, req)
}

// Ensure this is the FIRST interceptor in your chain
s := grpc.NewServer(
    grpc.ChainUnaryInterceptor(pathValidationInterceptor, authzInterceptor),
)

2. Infrastructure-Level Normalization

If your gRPC server is behind a reverse proxy or load balancer (such as Envoy, NGINX, or an L7 Cloud Load Balancer), ensure it is configured to enforce strict HTTP/2 compliance for pseudo-headers and reject or normalize requests where the :path header does not start with a leading slash.

3. Policy Hardening

Switch to a "default deny" posture in your authorization policies (explicitly listing all allowed paths and denying everything else) to reduce the risk of bypasses via malformed inputs.

critical: 0 high: 4 medium: 4 low: 1 stdlib 1.25.7 (golang)

pkg:golang/stdlib@1.25.7

high : CVE--2026--32283

Affected range<1.25.9
Fixed version1.25.9
EPSS Score0.021%
EPSS Percentile6th percentile
Description

If one side of the TLS connection sends multiple key update messages post-handshake in a single record, the connection can deadlock, causing uncontrolled consumption of resources. This can lead to a denial of service.

This only affects TLS 1.3.

high : CVE--2026--32281

Affected range<1.25.9
Fixed version1.25.9
EPSS Score0.021%
EPSS Percentile5th percentile
Description

Validating certificate chains which use policies is unexpectedly inefficient when certificates in the chain contain a very large number of policy mappings, possibly causing denial of service.

This only affects validation of otherwise trusted certificate chains, issued by a root CA in the VerifyOptions.Roots CertPool, or in the system certificate pool.

high : CVE--2026--32280

Affected range<1.25.9
Fixed version1.25.9
EPSS Score0.021%
EPSS Percentile5th percentile
Description

During chain building, the amount of work that is done is not correctly limited when a large number of intermediate certificates are passed in VerifyOptions.Intermediates, which can lead to a denial of service. This affects both direct users of crypto/x509 and users of crypto/tls.

high : CVE--2026--25679

Affected range<1.25.8
Fixed version1.25.8
EPSS Score0.033%
EPSS Percentile10th percentile
Description

url.Parse insufficiently validated the host/authority component and accepted some invalid URLs.

medium : CVE--2026--32282

Affected range<1.25.9
Fixed version1.25.9
EPSS Score0.008%
EPSS Percentile1st percentile
Description

On Linux, if the target of Root.Chmod is replaced with a symlink while the chmod operation is in progress, Chmod can operate on the target of the symlink, even when the target lies outside the root.

The Linux fchmodat syscall silently ignores the AT_SYMLINK_NOFOLLOW flag, which Root.Chmod uses to avoid symlink traversal. Root.Chmod checks its target before acting and returns an error if the target is a symlink lying outside the root, so the impact is limited to cases where the target is replaced with a symlink between the check and operation.

medium : CVE--2026--32289

Affected range<1.25.9
Fixed version1.25.9
EPSS Score0.014%
EPSS Percentile3rd percentile
Description

Context was not properly tracked across template branches for JS template literals, leading to possibly incorrect escaping of content when branches were used. Additionally template actions within JS template literals did not properly track the brace depth, leading to incorrect escaping being applied.

These issues could cause actions within JS template literals to be incorrectly or improperly escaped, leading to XSS vulnerabilities.

medium : CVE--2026--27142

Affected range<1.25.8
Fixed version1.25.8
EPSS Score0.012%
EPSS Percentile2nd percentile
Description

Actions which insert URLs into the content attribute of HTML meta tags are not escaped. This can allow XSS if the meta tag also has an http-equiv attribute with the value "refresh".

A new GODEBUG setting has been added, htmlmetacontenturlescape, which can be used to disable escaping URLs in actions in the meta content attribute which follow "url=" by setting htmlmetacontenturlescape=0.

medium : CVE--2026--32288

Affected range<1.25.9
Fixed version1.25.9
EPSS Score0.006%
EPSS Percentile0th percentile
Description

tar.Reader can allocate an unbounded amount of memory when reading a maliciously-crafted archive containing a large number of sparse regions encoded in the "old GNU sparse map" format.

low : CVE--2026--27139

Affected range<1.25.8
Fixed version1.25.8
EPSS Score0.005%
EPSS Percentile0th percentile
Description

On Unix platforms, when listing the contents of a directory using File.ReadDir or File.Readdir the returned FileInfo could reference a file outside of the Root in which the File was opened.

The impact of this escape is limited to reading metadata provided by lstat from arbitrary locations on the filesystem without permitting reading or writing files outside the root.

critical: 0 high: 1 medium: 0 low: 0 golang.org/x/net 0.50.0 (golang)

pkg:golang/golang.org/x/net@0.50.0

high : CVE--2026--27141

Affected range>=0.50.0
<0.51.0
Fixed version0.51.0
EPSS Score0.022%
EPSS Percentile6th percentile
Description

Due to missing nil check, sending 0x0a-0x0f HTTP/2 frames will cause a running server to panic

critical: 0 high: 1 medium: 0 low: 0 github.com/buger/jsonparser 1.1.1 (golang)

pkg:golang/github.com/buger/jsonparser@1.1.1

high 7.5: CVE--2026--32285 Out-of-bounds Read

Affected range<=1.1.1
Fixed version1.1.2
CVSS Score7.5
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score0.054%
EPSS Percentile17th percentile
Description

The Delete function fails to properly validate offsets when processing malformed JSON input. This can lead to a negative slice index and a runtime panic, allowing a denial of service attack.

critical: 0 high: 1 medium: 0 low: 0 github.com/docker/cli 28.5.2+incompatible (golang)

pkg:golang/github.com/docker/cli@28.5.2%2Bincompatible

high 7.0: CVE--2025--15558 Uncontrolled Search Path Element

Affected range>=19.03.0
<29.2.0
Fixed version29.2.0
CVSS Score7
CVSS VectorCVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
EPSS Score0.023%
EPSS Percentile6th percentile
Description

This issue affects Docker CLI through 29.1.5

Impact

Docker CLI for Windows searches for plugin binaries in C:\ProgramData\Docker\cli-plugins, a directory that does not exist by default. A low-privileged attacker can create this directory and place malicious CLI plugin binaries (docker-compose.exe, docker-buildx.exe, etc.) that are executed when a victim user opens Docker Desktop or invokes Docker CLI plugin features, and allow privilege-escalation if the docker CLI is executed as a privileged user.

This issue affects Docker CLI through v29.1.5 (fixed in v29.2.0). It impacts Windows binaries acting as a CLI plugin manager via the [github.com/docker/cli/cli-plugins/manager](https://pkg.go.dev/github.com/docker/cli@v29.1.5+incompatible/cli-plugins/manager) package, which is consumed by downstream projects such as Docker Compose.

Docker Compose became affected starting in v2.31.0, when it incorporated the relevant CLI plugin manager code (see docker/compose#12300), and is fixed in v5.1.0.

This issue does not impact non-Windows binaries or projects that do not use the plugin manager code.

Patches

Fixed version starts with 29.2.0

This issue was fixed in docker/cli@1375933 (docker/cli#6713), which removed %PROGRAMDATA%\Docker\cli-plugins from the list of paths used for plugin-discovery on Windows.

Workarounds

None

Resources

Credits

Nitesh Surana (niteshsurana.com) of Trend Research of TrendAI

critical: 0 high: 1 medium: 0 low: 0 github.com/go-jose/go-jose/v4 4.1.3 (golang)

pkg:golang/github.com/go-jose/go-jose@4.1.3#v4

high 7.5: CVE--2026--34986 Uncaught Exception

Affected range<4.1.4
Fixed version4.1.4
CVSS Score7.5
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score0.019%
EPSS Percentile5th percentile
Description

Impact

Decrypting a JSON Web Encryption (JWE) object will panic if the alg field indicates a key wrapping algorithm (one ending in KW, with the exception of A128GCMKW, A192GCMKW, and A256GCMKW) and the encrypted_key field is empty. The panic happens when cipher.KeyUnwrap() in key_wrap.go attempts to allocate a slice with a zero or negative length based on the length of the encrypted_key.

This code path is reachable from ParseEncrypted() / ParseEncryptedJSON() / ParseEncryptedCompact() followed by Decrypt() on the resulting object. Note that the parse functions take a list of accepted key algorithms. If the accepted key algorithms do not include any key wrapping algorithms, parsing will fail and the application will be unaffected.

This panic is also reachable by calling cipher.KeyUnwrap() directly with any ciphertext parameter less than 16 bytes long, but calling this function directly is less common.

Panics can lead to denial of service.

Fixed In

4.1.4 and v3.0.5

Workarounds

If the list of keyAlgorithms passed to ParseEncrypted() / ParseEncryptedJSON() / ParseEncryptedCompact() does not include key wrapping algorithms (those ending in KW), your application is unaffected.

If your application uses key wrapping, you can prevalidate to the JWE objects to ensure the encrypted_key field is nonempty. If your application accepts JWE Compact Serialization, apply that validation to the corresponding field of that serialization (the data between the first and second .).

Thanks

Thanks to Datadog's Security team for finding this issue.

critical: 0 high: 1 medium: 0 low: 0 github.com/moby/spdystream 0.5.0 (golang)

pkg:golang/github.com/moby/spdystream@0.5.0

high 8.7: CVE--2026--35469 Allocation of Resources Without Limits or Throttling

Affected range<=0.5.0
Fixed version0.5.1
CVSS Score8.7
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Description

The SPDY/3 frame parser in spdystream does not validate
attacker-controlled counts and lengths before allocating memory. A
remote peer that can send SPDY frames to a service using spdystream can
cause the process to allocate gigabytes of memory with a small number of
malformed control frames, leading to an out-of-memory crash.
 
Three allocation paths in the receive side are affected:

  1. SETTINGS entry count -- The SETTINGS frame reader reads a 32-bit
    numSettings from the payload and allocates a slice of that size
    without checking it against the declared frame length. An attacker
    can set numSettings to a value far exceeding the actual payload,
    triggering a large allocation before any setting data is read.
     
  2. Header count -- parseHeaderValueBlock reads a 32-bit
    numHeaders from the decompressed header block and allocates an
    http.Header map of that size with no upper bound.
     
  3. Header field size -- Individual header name and value lengths are
    read as 32-bit integers and used directly as allocation sizes with
    no validation.
     
    Because SPDY header blocks are zlib-compressed, a small on-the-wire
    payload can decompress into attacker-controlled bytes that the parser
    interprets as 32-bit counts and lengths. A single crafted frame is
    enough to exhaust process memory.

Impact

 Any program that accepts SPDY connections using spdystream -- directly
or through a dependent library -- is affected. A remote peer that can
send SPDY frames to the service can crash the process with a single
crafted SPDY control frame, causing denial of service.

Affected versions

 github.com/moby/spdystream <= v0.5.0

Fix

 v0.5.1 addresses the receive-side allocation bugs and adds related
hardening:
 
Core fixes:
 

  • SETTINGS entry-count validation -- The SETTINGS frame reader now
    checks that numSettings is consistent with the declared frame
    length (numSettings <= (length-4)/8) before allocating.
     
  • Header count limit -- parseHeaderValueBlock enforces a maximum
    number of headers per frame (default: 1000).
     
  • Header field size limit -- Individual header name and value
    lengths are checked against a per-field size limit (default: 1 MiB)
    before allocation.
     
  • Connection closure on protocol error -- The connection read loop
    now closes the underlying net.Conn when it encounters an
    InvalidControlFrame error, preventing further exploitation on the
    same connection.
     
    Additional hardening:
     
  • Write-side bounds checks -- All frame write methods now verify
    that payloads fit within the 24-bit length field, preventing the
    library from producing invalid frames.
     
    Configurable limits:
     
  • Callers can adjust the defaults using NewConnectionWithOptions or
    the lower-level spdy.NewFramerWithOptions with functional options:
    WithMaxControlFramePayloadSize, WithMaxHeaderFieldSize, and
    WithMaxHeaderCount.
     
critical: 0 high: 1 medium: 0 low: 0 go.opentelemetry.io/otel/sdk 1.41.0 (golang)

pkg:golang/go.opentelemetry.io/otel/sdk@1.41.0

high 7.3: CVE--2026--39883 Untrusted Search Path

Affected range>=1.15.0
<=1.42.0
Fixed version1.43.0
CVSS Score7.3
CVSS VectorCVSS:4.0/AV:L/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
EPSS Score0.006%
EPSS Percentile0th percentile
Description

Summary

The fix for GHSA-9h8m-3fm2-qjrq (CVE-2026-24051) changed the Darwin ioreg command to use an absolute path but left the BSD kenv command using a bare name, allowing the same PATH hijacking attack on BSD and Solaris platforms.

Root Cause

sdk/resource/host_id.go line 42:

if result, err := r.execCommand("kenv", "-q", "smbios.system.uuid"); err == nil {

Compare with the fixed Darwin path at line 58:

result, err := r.execCommand("/usr/sbin/ioreg", "-rd1", "-c", "IOPlatformExpertDevice")

The execCommand helper at sdk/resource/host_id_exec.go uses exec.Command(name, arg...) which searches $PATH when the command name contains no path separator.

Affected platforms (per build tag in host_id_bsd.go:4): DragonFly BSD, FreeBSD, NetBSD, OpenBSD, Solaris.

The kenv path is reached when /etc/hostid does not exist (line 38-40), which is common on FreeBSD systems.

Attack

  1. Attacker has local access to a system running a Go application that imports go.opentelemetry.io/otel/sdk
  2. Attacker places a malicious kenv binary earlier in $PATH
  3. Application initializes OpenTelemetry resource detection at startup
  4. hostIDReaderBSD.read() calls exec.Command("kenv", ...) which resolves to the malicious binary
  5. Arbitrary code executes in the context of the application

Same attack vector and impact as CVE-2026-24051.

Suggested Fix

Use the absolute path:

if result, err := r.execCommand("/bin/kenv", "-q", "smbios.system.uuid"); err == nil {

On FreeBSD, kenv is located at /bin/kenv.

critical: 0 high: 0 medium: 1 low: 1 github.com/go-git/go-git/v5 5.17.0 (golang)

pkg:golang/github.com/go-git/go-git@5.17.0#v5

medium 5.0: CVE--2026--34165 Integer Underflow (Wrap or Wraparound)

Affected range>=5.0.0
<=5.17.0
Fixed version5.17.1
CVSS Score5
CVSS VectorCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:H
EPSS Score0.013%
EPSS Percentile2nd percentile
Description

Impact

A vulnerability has been identified in which a maliciously crafted .idx file can cause asymmetric memory consumption, potentially exhausting available memory and resulting in a Denial of Service (DoS) condition.

Exploitation requires write access to the local repository's .git directory, it order to create or alter existing .idx files.

Patches

Users should upgrade to v5.17.1, or the latest v6 pseudo-version, in order to mitigate this vulnerability.

Credit

The go-git maintainers thank @kq5y for finding and reporting this issue privately to the go-git project.

low 2.8: CVE--2026--33762 Improper Validation of Array Index

Affected range<=5.17.0
Fixed version5.17.1
CVSS Score2.8
CVSS VectorCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:L
EPSS Score0.014%
EPSS Percentile2nd percentile
Description

Impact

go-git’s index decoder for format version 4 fails to validate the path name prefix length before applying it to the previously decoded path name. A maliciously crafted index file can trigger an out-of-bounds slice operation, resulting in a runtime panic during normal index parsing.

This issue only affects Git index format version 4. Earlier formats (go-git supports only v2 and v3) are not vulnerable to this issue.

An attacker able to supply a crafted .git/index file can cause applications using go-git to panic while reading the index. If the application does not recover from panics, this results in process termination, leading to a denial-of-service (DoS) condition.

Exploitation requires the ability to modify or inject a Git index file within the local repository in disk. This typically implies write access to the .git directory.

Patches

Users should upgrade to v5.17.1, or the latest v6 pseudo-version, in order to mitigate this vulnerability.

Credit

go-git maintainers thank @kq5y for finding and reporting this issue privately to the go-git project.

critical: 0 high: 0 medium: 1 low: 0 github.com/aws/aws-sdk-go-v2/service/s3 1.96.0 (golang)

pkg:golang/github.com/aws/aws-sdk-go-v2@1.96.0#service/s3

medium 5.9: GHSA--xmrv--pmrh--hhx2 Improper Input Validation

Affected range<1.97.3
Fixed version1.97.3
CVSS Score5.9
CVSS VectorCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Description

CVSSv3.1 Rating: [Medium]
CVSSv3.1 Score: [5.9]
CVSSv3.1 Vector String: [CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H]

Summary and Impact

An issue exists in the the EventStream header decoder in AWS SDK for Go v2 in versions predating 2026-03-23. An actor can send a malformed EventStream response frame containing a crafted header value type byte outside the valid range, which can cause the host process to terminate.

Impacted versions: < 2026-03-23

Patches

This issue has been addressed in versions 2026-03-23 and above. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes.

Workarounds

Not Applicable

References

If you have any questions or comments about this advisory, we ask that you contact [AWS/Amazon] Security via our vulnerability reporting page or directly via email to [aws-security@amazon.com](mailto:aws-security@amazon.com). Please do not create a public GitHub issue.

critical: 0 high: 0 medium: 1 low: 0 github.com/aws/aws-sdk-go-v2/service/s3 1.96.0 (golang)

pkg:golang/github.com/aws/aws-sdk-go-v2/service/s3@1.96.0

medium 5.9: GHSA--xmrv--pmrh--hhx2 Improper Input Validation

Affected range<1.97.3
Fixed version1.97.3
CVSS Score5.9
CVSS VectorCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Description

CVSSv3.1 Rating: [Medium]
CVSSv3.1 Score: [5.9]
CVSSv3.1 Vector String: [CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H]

Summary and Impact

An issue exists in the the EventStream header decoder in AWS SDK for Go v2 in versions predating 2026-03-23. An actor can send a malformed EventStream response frame containing a crafted header value type byte outside the valid range, which can cause the host process to terminate.

Impacted versions: < 2026-03-23

Patches

This issue has been addressed in versions 2026-03-23 and above. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes.

Workarounds

Not Applicable

References

If you have any questions or comments about this advisory, we ask that you contact [AWS/Amazon] Security via our vulnerability reporting page or directly via email to [aws-security@amazon.com](mailto:aws-security@amazon.com). Please do not create a public GitHub issue.

critical: 0 high: 0 medium: 1 low: 0 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream 1.7.4 (golang)

pkg:golang/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream@1.7.4

medium 5.9: GHSA--xmrv--pmrh--hhx2 Improper Input Validation

Affected range<1.7.8
Fixed version1.7.8
CVSS Score5.9
CVSS VectorCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Description

CVSSv3.1 Rating: [Medium]
CVSSv3.1 Score: [5.9]
CVSSv3.1 Vector String: [CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H]

Summary and Impact

An issue exists in the the EventStream header decoder in AWS SDK for Go v2 in versions predating 2026-03-23. An actor can send a malformed EventStream response frame containing a crafted header value type byte outside the valid range, which can cause the host process to terminate.

Impacted versions: < 2026-03-23

Patches

This issue has been addressed in versions 2026-03-23 and above. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes.

Workarounds

Not Applicable

References

If you have any questions or comments about this advisory, we ask that you contact [AWS/Amazon] Security via our vulnerability reporting page or directly via email to [aws-security@amazon.com](mailto:aws-security@amazon.com). Please do not create a public GitHub issue.

critical: 0 high: 0 medium: 1 low: 0 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream 1.7.4 (golang)

pkg:golang/github.com/aws/aws-sdk-go-v2@1.7.4#aws/protocol/eventstream

medium 5.9: GHSA--xmrv--pmrh--hhx2 Improper Input Validation

Affected range<1.7.8
Fixed version1.7.8
CVSS Score5.9
CVSS VectorCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Description

CVSSv3.1 Rating: [Medium]
CVSSv3.1 Score: [5.9]
CVSSv3.1 Vector String: [CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H]

Summary and Impact

An issue exists in the the EventStream header decoder in AWS SDK for Go v2 in versions predating 2026-03-23. An actor can send a malformed EventStream response frame containing a crafted header value type byte outside the valid range, which can cause the host process to terminate.

Impacted versions: < 2026-03-23

Patches

This issue has been addressed in versions 2026-03-23 and above. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes.

Workarounds

Not Applicable

References

If you have any questions or comments about this advisory, we ask that you contact [AWS/Amazon] Security via our vulnerability reporting page or directly via email to [aws-security@amazon.com](mailto:aws-security@amazon.com). Please do not create a public GitHub issue.

@github-actions
Copy link
Copy Markdown

@github-actions
Copy link
Copy Markdown

PR is blocked and cannot be merged. See https://github.com/uniget-org/tools/actions/runs/24546707409.

Copy link
Copy Markdown

@nicholasdille-bot nicholasdille-bot left a comment

Choose a reason for hiding this comment

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

Auto-approved because label type/renovate is present.

@nicholasdille nicholasdille merged commit 63b829b into main Apr 17, 2026
9 of 11 checks passed
@nicholasdille nicholasdille deleted the renovate/gitlab-runner-18.x branch April 17, 2026 13:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants