Skip to main content

Craftplan EUVDEUVD-2026-102493

| CVE-2026-111349 MEDIUM
Missing Authorization (CWE-862)
2026-10-15 VulnCheck GHSA-4pw4-44qq-2vmv
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Reach exposed Craftplan API
  2. Delivery
    Send anonymous POST /api/json/customers or create_customer mutation
  3. Exploit
    Server skips authorization check (CWE-862)
  4. Execution
    Attacker-chosen customer record inserted
  5. Impact
    CRM polluted with fraudulent data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

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

Exploitation Conditions

No special conditions beyond network reachability - remote unauthenticated exploitation against a Craftplan instance (through 0.7.5) whose JSON:API (POST /api/json/customers) or GraphQL endpoint (create_customer mutation) is exposed to the attacker. The limiting factors are deployment-driven rather than technical: the instance's API must be network-reachable to the attacker, and impact is confined to CREATING new CRM customer records - the flaw does not grant read access to existing customer data, nor the ability to modify or delete existing records, so the realistic worst case is CRM data pollution/spam rather than compromise of confidentiality or system availability.

Impact

This is a genuine but modest-severity integrity-only issue, not a top priority. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms remote, unauthenticated, low-complexity reachability with no user interaction, which is why it scores 6.9 - the attack surface is maximally open. However, impact is deliberately narrow: VI:L with VC:N and VA:N means the only consequence is that an attacker can INSERT attacker-chosen customer records; there is no data disclosure, no modification/deletion of existing records implied, and no availability loss. No EPSS score was supplied, the CVE is NOT in CISA KEV, and no public exploit code is referenced, so there is no evidence of active exploitation or weaponization - exploitation status is 'no public exploit identified at time of analysis.' The signals are internally consistent (easy to reach, limited to low-integrity write), so there is no network-vs-local contradiction to resolve. Real-world risk is driven far more by the product's tiny deployment footprint than by the flaw itself: a trivially exploitable write primitive into an obscure open-source CRM is a data-pollution/spam nuisance, not a widespread threat.

Exploit ScenarioDerived

An attacker, without any account or token, sends an anonymous HTTP POST to /api/json/customers (or issues the create_customer GraphQL mutation) against an internet-exposed Craftplan instance and injects fabricated customer names, contact details, and addresses into the operator's CRM. Because the request requires no authentication and no user interaction, it is scriptable for bulk record injection (CRM spam/poisoning). No public proof-of-concept is referenced, though the HackMD writeup and VulnCheck advisory describe the exact endpoints.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 15, 2026

Unauthenticated attackers can create arbitrary CRM customer records in Craftplan through 0.7.5 by abusing missing authorization on the JSON:API POST /api/json/customers endpoint and the GraphQL create_customer mutation (CWE-862). The issue is remote and requires only network reachability, with impact limited to integrity - insertion of attacker-chosen names, contact details, and addresses into the operator's CRM - without read access to existing records or ability to modify or delete them. Rated CVSS 4.0 6.9 and independently assessed as an integrity-only modest-severity issue, no public exploit identified at time of analysis and no CISA KEV active exploitation is confirmed.

RemediationAI

No vendor-released patch identified at time of analysis; monitor the VulnCheck advisory (https://www.vulncheck.com/advisories/craftplan-through-0.7.5-missing-authorization-via-crm-customer-json-api-and-graphql) and https://github.com/puemos/craftplan for a fixed release. Until a patch is available, block unauthenticated POST requests to /api/json/customers and the GraphQL create_customer mutation at an upstream reverse proxy, WAF, or API gateway; doing so restores the missing authorization check for the CRM Customer resource but may break legitimate integrations that rely on anonymous customer creation. Restrict the JSON:API and GraphQL endpoints to trusted networks or require authentication at the proxy layer, accepting reduced API accessibility for external clients. If you maintain a fork, apply the api_scope_check enforcement (as referenced in lib/craftplan/accounts/checks/api_scope_check.ex) to the customer create path in lib/craftplan/crm/customer.ex, but test for regressions with existing CRM workflows and note that code changes must be deployed to each Craftplan instance.

Affected VersionsENISA

craftplan 0 ≤0.7.5

Affected Packages

euvd craftplan no fix

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

Craftplan is an Elixir/Phoenix application (CPE cpe:2.3:a:puemos:craftplan:*:*:*:*:*:*:*:*) that exposes CRM resources through JSON:API and GraphQL. CWE-862 (Missing Authorization) is the root cause: the CRM Customer create action lacks an authorization plug or scope check, allowing unauthenticated requests to invoke it. The referenced code at lib/craftplan/crm/customer.ex lines 91-94 implements the create logic, while lib/craftplan/accounts/checks/api_scope_check.ex lines 33-40 defines the API scope enforcement that is not applied to this resource. Consequently, both POST /api/json/customers and the GraphQL create_customer mutation accept anonymous input and persist records, which enables CRM data pollution or spam rather than confidentiality or availability compromise.

Know when Craftplan 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 (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

Remote, no auth and no interaction to reach the endpoint (AV:N/AC:L/PR:N/UI:N); only unauthorized record creation gives I:L, with no read (C:N) or availability (A:N) impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Craftplan through 0.7.5 contains a missing authorization vulnerability in the CRM Customer resource that allows unauthenticated attackers to create customer records via JSON:API and GraphQL. Attackers can send anonymous requests to POST /api/json/customers or the create_customer mutation to insert attacker-chosen names, contact details and addresses into the operator's CRM.

Threat Intelligence Overview

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Rare
obscure single-maintainer open-source CRM, negligible production footprint
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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 No
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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