Skip to content
yisusvii
Go back

Security Thursdays by yisusvii — 2026-10-15

Suggest Changes

By

Table of Contents

Open Table of Contents

🚨 Cybersecurity News of the Week

1. PraisonAI — unsandboxed CodeAgent, AICoder RCE, AgentOS open defaults (Oct 8)

What happened: On October 8, 2026, PraisonAI published a multi-advisory cluster. Highest severity:

Additional same-day items cover plugin auto-discovery, SkillTools path escape, DNS-rebinding SSRF in crawl helpers, Host-header auth bypass on “localhost-only” Call API, and unauthenticated Jobs/MCP surfaces — treat 4.6.78 / 1.6.78 / npm 1.7.3 as the practical floors and read the full advisory set if you run any PraisonAI component.

Who is affected: Teams running PraisonAI agent UIs, CodeAgent, AICoder, or AgentOS from the version bands above (common in internal “AI ops” sandboxes that sometimes land on shared networks).

Why it matters: Same pattern as last week’s Langflow/Flowise story: agent platforms default to “notebook power, production listen socket.” Env-copy + fake sandbox is a secrets-breach class, not a niche code-exec demo.

Exploitation status: Not confirmed as mass in-the-wild exploitation in sources reviewed. Severity and prerequisites are from vendor GHSAs.

Defender actions: Upgrade packages to the floors above. Do not expose AgentOS without an API key and network policy. Strip secrets from agent host env; run non-root; disable CodeAgent/AICoder tool sinks you do not need.

Primary sources: linked GHSAs.

2. Handlebars AST injection bypasses 4.7.9 validator (Oct 8)

What happened: On October 8, 2026, GHSA-8r5x-fm3f-whwj / CVE-2026-106446 (Critical, CVSS 3.1 9.8) documented that Handlebars.compile() / precompile() still accept a pre-parsed AST, and the 4.7.9 validator only type-checks certain node kinds. Other AST fields are written raw into generated JavaScript. Untrusted objects (for example a JSON body passed where a template string was assumed) can inject JS that runs on render (server) or when precompiled output loads. This bypasses the AST validation added for earlier advisories (GHSA-2w6w-674q-4c4q and related). Fixed in v4.7.10; affected npm handlebars ≥ 4.0.0, ≤ 4.7.9. A companion critical, GHSA-p8wg-vrv2-v86f / CVE-2026-106445 (own-property check bypass), is part of the same hardening story — use 4.7.10+.

Who is affected: Apps that pass non-string values into compile/precompile. String-only template pipelines are called out as not affected for CVE-2026-106446.

Why it matters: Handlebars is still ubiquitous in Node SSR, email/HTML rendering, and admin UIs. “We upgraded past the last AST bug” is insufficient if you still accept object templates from clients.

Exploitation status: Not confirmed mass exploitation in sources reviewed.

Defender actions: Upgrade to ≥ 4.7.10. Enforce typeof template === 'string' at API boundaries. Prefer not accepting client-supplied ASTs at all.

Primary sources: GHSA-8r5x-fm3f-whwj, v4.7.10.

3. fast-jwt — incomplete RSA→HS256 fix and verifier gaps (Oct 8)

What happened: On October 8, 2026, nearform fast-jwt published a cluster fixed in v6.3.0:

Who is affected: Node services verifying JWTs with fast-jwt ≤ 6.2.4, especially asymmetric-key verifiers that load PEM/JWK from configs that may carry prefixes/wrappers.

Why it matters: Incomplete crypto patches are worse than no patch when teams mark tickets “done” at 6.2.x. Algorithm confusion needs one successful forge path.

Exploitation status: Not confirmed in the wild in sources reviewed. Advisory includes a verified PoC against 6.2.2 (lab evidence, not campaign evidence).

Defender actions: Upgrade to ≥ 6.3.0. Pin algorithms explicitly; never mix “detect key type from blob” with attacker-influenced key material. Re-test negative cases (HS256 token against RSA verifier must fail).

Primary sources: linked GHSAs; v6.3.0.

4. Argo CD — SSH repository proxy → repo-server command injection (Oct 9)

What happened: On October 9, 2026, GHSA-j6cw-g6p4-7hch / CVE-2026-55797 (High, CVSS 3.1 8.8, EPSS on GHSA 1.548% / percentile ~0.75) disclosed that Argo CD builds an SSH ProxyCommand from repository proxy host/port and runs it via a shell. Shell metacharacters in the proxy host break out into the repo-server. Introduced with SOCKS5 SSH proxy support in v2.11.0 (commit 9b27aeb1a4 / PR #15864, 2024-01-09). Affects SSH repositories with proxy set (http/https/socks5 proxy URLs on SSH repos). HTTPS Git + HTTP proxy does not use this path.

Patches (per advisory): v3.6.0-rc2, v3.5.4, v3.4.10, v3.3.15. Fix stops passing proxy host/port through a shell. Argo CD 2.x and 3.0–3.2 are out of support and will not receive a patch — upgrade to patched 3.3+. GHSA package metadata lists github.com/argoproj/argo-cd/v2 ≥ 2.11.0, ≤ 2.14.21 with no first patched version.

Who is affected: Anyone who can create/update a repository or credential template (including project-scoped repo permission, argocd repo add --proxy, repository Secrets). Credential templates apply proxy to matching SSH repos.

Why it matters: GitOps control plane + credential store on the repo-server. Low privilege relative to cluster-admin still equals credential theft and supply-chain write potential.

Exploitation status: Not confirmed mass exploitation in sources reviewed.

Defender actions: Upgrade to a patched 3.3+ release. Remove unexpected proxy from repo/credential-template Secrets. Do not grant repository create/update to untrusted users. Prefer HTTPS repos where proxying is required until patched.

Primary sources: GHSA-j6cw-g6p4-7hch.

5. .NET / ASP.NET Core October servicing + edge/mail Criticals (Oct 13–14)

What happened:

Also notable (shorter form): TinaCMS admin preview iframe origin from URL fragment → editor-session GraphQL abuse (CVE-2026-108261, tinacms ≥ 3.14.0 / @tinacms/app ≥ 2.5.14); AsyncHttpClient host-replay credential leak (CVE-2026-107282, 2.16.1 / 3.0.13); Nginx-UI authenticated backup-restore RCE path (CVE-2026-107806, vendor points at v2.5.0 release tag — confirm your build against the advisory).

Exploitation status: Cisco item carries a KEV deep link on GHSA (verify live). No mass-exploitation confirmation reviewed for the OSS/.NET items above beyond vendor severity.

Defender actions: Patch .NET runtimes and rebuild SCD apps; schedule Cisco ESA and Junos J-Web emergency change windows; review NGINX SSI/AIO and map+capture configs against F5 guidance.


🛡️ CVEs That Deserve Attention

CVEProductSeverityExploitation statusPrimary riskRecommended action
CVE-2026-61447PraisonAI praisonaiagentsCritical 10.0Not confirmed ITWUnsandboxed LLM code exec + full env leakUpgrade ≥ 1.6.78; isolate agent hosts
CVE-2026-61445PraisonAI praisonaiCritical 9.9Not confirmed ITWAICoder arbitrary write/exec via prompt injectionUpgrade ≥ 4.6.78
CVE-2026-106446HandlebarsCritical 9.8Not confirmed ITWAST → JS injection bypassing 4.7.9 validatorUpgrade ≥ 4.7.10; string-only templates
CVE-2026-107722fast-jwtCritical 9.8Not confirmed ITW (PoC in advisory)Incomplete alg-confusion patch (RSA as HMAC)Upgrade ≥ 6.3.0
CVE-2026-55797Argo CDHigh 8.8Not confirmed ITWSSH proxy host → repo-server shell injectionPatch 3.3.15+ trains; audit proxies
CVE-2026-105016.NET / MsQuic (Windows)Critical 9.8Not confirmed ITWUnauth IPv6 QUIC/HTTP3 RCEServicing update + MsQuic package floor
CVE-2026-76519Cisco Secure Email GatewayCritical 9.8GHSA lists KEV deep link (verify live)AMP attachment → root file write/execApply Cisco SA; restrict AMP exposure

CVE-2026-61447 — PraisonAI CodeAgent unsandboxed execution

CVE-2026-61445 — PraisonAI AICoder write/exec tools

CVE-2026-106446 — Handlebars compile AST injection

CVE-2026-107722 — fast-jwt incomplete algorithm-confusion fix

CVE-2026-55797 — Argo CD SSH proxy command injection

CVE-2026-105016 — Microsoft QUIC / .NET HTTP/3 RCE (Windows)

CVE-2026-76519 — Cisco Secure Email Gateway AMP file write


🔧 Basic Security Tool of the Week

govulncheck (golang.org/x/vuln v1.9.0) — call-graph-aware Go vulnerability scanner

What it does: govulncheck analyzes Go modules and binaries against the Go vulnerability database. It aims to surface findings for vulnerabilities in functions your code actually reaches, reducing dependency-noise compared to version-only matching.

Who it is for: Go developers, platform/SRE teams maintaining Argo CD controllers, operators, repo-server sidecars, and any in-house GitOps/Kubernetes controllers — aligned with this week’s Argo CD and broader Go advisory volume (Nginx-UI, Vikunja, excelize, etc.).

Why this week: Different category from last week’s Syft (SBOM inventory) and earlier Grype / Trivy / Checkov / TruffleHog / OSV-Scanner / gosec. govulncheck answers “does my Go program call the vulnerable function?” Module golang.org/x/vuln v1.9.0 published 2026-10-11 (inside this research window) — active maintenance confirmed via the Go module proxy.

Install (authorized machine only):

# Pin the researched module version (prefer pin over floating @latest in CI)
go install golang.org/x/vuln/cmd/govulncheck@v1.9.0

# Confirm binary
govulncheck -h

Safe basic example — scan only modules and binaries you own or are authorized to assess:

# From an authorized Go module root
cd /path/to/your/authorized/module
govulncheck ./...

# Optional: JSON for CI artifacts on the same authorized tree
govulncheck -json ./... > govulncheck-report.json

# Optional: analyze an authorized binary you built (not third-party prod hosts)
govulncheck -mode=binary /path/to/your/authorized/app

How to read results: Treat “called” findings as patch-now candidates. Version-only / uncalled entries still matter for defense-in-depth and future refactors but can be prioritized lower. Map hits on github.com/argoproj/argo-cd/... and other GitOps deps to this week’s floors. Re-run after go get upgrades.

Limitations: Coverage is only as good as the Go vuln DB and build tags/GOOS/GOARCH you analyze. Vendored CGO, plugins, and runtime-generated code can be missed. Not a container image scanner (pair with Syft/Grype/Trivy if you need image SBOMs). Never point govulncheck at third-party systems, customer clusters, or binaries you are not authorized to inspect. Pin the tool version in CI.

Links: Module docs · govulncheck command · Tutorial · Go vuln DB · v1.9.0 module info


💡 Security Tip of the Day

Today’s tip: For every JWT verifier in production, forbid algorithm confusion by construction: pin one expected algorithm family, load keys already typed (PEM/JWK parsed with a strict parser — not “detect from blob”), and reject tokens whose header alg is not in an explicit allowlist — then prove a forged HS256 token against your RSA verifier fails.

Why it matters: This week’s fast-jwt advisory shows a “fixed” 6.2.x release still fell through to HMAC when PEM detection missed a non-whitespace prefix. Last month’s PyJWT work (see 2026-10-01 digest) is the same class. Library upgrades help; verifier policy is what keeps the class closed.

How to apply it (≈10 minutes):

  1. Search code for createVerifier, jwt.verify, algorithms=, JWT_SECRET, PEM loaders.
  2. Set an explicit algorithm allowlist (e.g. only RS256 or only ES256 or only HS256 — never “any”).
  3. Upgrade fast-jwt to ≥ 6.3.0 (or your stack’s current complete fix).
  4. Add a unit/integration test: build an HS256 token using the public RSA key bytes as HMAC secret; assert verification errors.
  5. Ensure key config files cannot ship with comment wrappers or HTTP headers prepended to PEM.

Verify: Negative test fails closed; lockfile shows patched JWT library; staging auth rejects alg-mismatched tokens in logs without accepting them.


✅ Security Actions for This Week

  1. Emergency: Patch PraisonAI (praisonai ≥ 4.6.78, praisonaiagents ≥ 1.6.78, npm ≥ 1.7.3); pull open AgentOS off untrusted networks; rotate secrets that ever lived in agent process env.
  2. Emergency/High: fast-jwt ≥ 6.3.0 and handlebars ≥ 4.7.10 lockfile sweep; add alg-confusion negative tests (tip above).
  3. Emergency/High: Upgrade Argo CD to patched 3.3.15 / 3.4.10 / 3.5.4 / 3.6.0-rc2+; audit SSH proxy on repos and credential templates; remove 2.x if still running.
  4. Emergency: Apply .NET October servicing (8.0.32 / 9.0.21 / 10.0.13 …); prioritize Windows HTTP/3 / MsQuic (CVE-2026-105016) and Kestrel smuggling Criticals; rebuild self-contained apps. Process Cisco ESA SA for CVE-2026-76519 and verify CISA KEV due dates live.
  5. Hygiene: Run govulncheck@v1.9.0 on one authorized Go service; finish any remaining items from the 2026-10-08 Payload/Langflow/Ghost floors.

Sources


Suggest Changes
Share this post on:


Next Post
DevOps & SRE Weekly Digest — 2026-10-14