Skip to main content

Shaark CVE-2026-109568

| EUVDEUVD-2026-97891 HIGH
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-10-12 disclosure@vulncheck.com GHSA-33mg-5c73-726g
7.1
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privileged Shaark user
  2. Exploit
    Enumerate sequential numeric content IDs
  3. Execution
    Send PUT/DELETE to /api/{link,story,chest,album}/{id}
  4. Impact
    Overwrite or delete other users' private content

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

Requires a valid authenticated non-admin user account on a multi-user Shaark instance (PR:L); the attacker then issues PUT or DELETE requests to the /api/{link,story,chest,album}/{id} routes using guessable sequential numeric IDs, because these controllers call findOrFail() without any owner check. Limiting factors: single-user/self-only deployments have no victim content to target, and the instance must allow the attacker to obtain an account (open registration or an existing multi-tenant setup); no user interaction is needed and the affected API accepts the requests against default configurations once authenticated.

Impact

This is a genuine but moderate-priority authorization flaw (CWE-639, IDOR). The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:L, base 7.1) is internally consistent with the description: network-reachable API, low attack complexity, and crucially PR:L - exploitation requires an authenticated non-admin account, which is the single biggest mitigating factor. The GitHub PR #110 diff concretely confirms the root cause (missing $model->post->user_id !== $request->user()->id ownership checks on update/delete routes across Link, Story, Chest, Album, LinkArchive and Share controllers), so the technical validity is strongly corroborated by source code - this is not speculative. No EPSS score, CISA KEV listing, or SSVC decision data was provided in the input, and no public exploit code was supplied (the GitHub artifact is the remediation patch, not a weaponized exploit). The impact is primarily integrity/availability (tampering with and deleting other users' content, including private items); confidentiality is rated N, meaning this is about destruction/overwrite rather than data theft. Net: a real, easily-weaponized bug on multi-user instances, but the authentication requirement and the niche deployment footprint keep real-world mass-exploitation risk low rather than critical.

Exploit ScenarioDerived

An attacker registers or already holds a low-privileged (non-admin) account on a multi-user Shaark instance. They send a PUT or DELETE request to /api/link/{id} (or /story, /chest, /album) iterating numeric IDs, overwriting or destroying links, stories, chests and albums belonging to other users - including private items - because the controllers never verify ownership. No public exploit code was provided, but the trivial attack complexity and the published patch make a working request easy to construct.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 12, 2026

Broken object-level authorization in Shaark 1.2.13 through 1.2.44 lets any authenticated non-admin user overwrite or delete other users' links, stories, chests, and albums by sending PUT or DELETE requests to /api/{link,story,chest,album}/{id} with sequential numeric IDs, because the API controllers load records with findOrFail() and never verify that the underlying post belongs to the calling user. Integrity impact is high (content can be modified or destroyed, including private items) while confidentiality is not affected and availability impact is limited; exploitation requires a valid low-privilege account on a multi-user instance, and the attacker must be able to obtain one via open registration or an existing tenant. This is a genuine but moderate-priority IDOR-class flaw (CWE-639); no public exploit code or confirmed in-the-wild activity was identified at time of analysis, and single-user or self-only deployments have no victim content to target.

RemediationAI

The authoritative fix is the ownership-enforcement patch in https://github.com/MarceauKa/shaark/pull/110, which adds a $model->post->user_id !== $request->user()->id check (returning HTTP 403) to the update and delete handlers in the link, story, chest, album, link-archive, and share API controllers; because this arrives as an upstream pull request rather than a tagged release, patched-version availability is not independently confirmed, so operators should upgrade to the earliest Shaark release that includes PR 110 or, failing that, apply the diff to their deployment and rebuild. Where code cannot be changed immediately, compensating controls are limited and each carries a trade-off: restrict or block PUT and DELETE methods to /api/link/{id}, /api/story/{id}, /api/chest/{id}, and /api/album/{id} at the reverse proxy for all non-administrative callers, accepting that legitimate users lose the ability to edit or delete their own content through those endpoints; or disable self-service account registration and remove untrusted accounts so that only a single trusted principal exists, which removes the victim set but does not fix the flaw and does not protect shared/multi-tenant instances. Post-exploitation, administrators should review server and application logs for PUT/DELETE activity on numeric IDs inconsistent with the authenticated account, check for deleted or altered private posts, and rotate nothing - this is an authorization flaw, not a credential compromise, so no secret material is exposed. Advisory URLs for tracking: https://www.vulncheck.com/advisories/shaark-1.2.13-through-1.2.44-missing-authorization-via-api-update-and-delete-routes and https://github.com/MarceauKa/shaark/pull/110.

Affected VersionsENISA

Shaark 1.2.13 ≤1.2.44

Affected Packages

euvd shaark 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

Shaark is a Laravel-based self-hosted content/bookmarking application in which links, stories, chests, and albums are modeled as child records attached to a parent Post that carries the owning user_id. The vulnerable API controllers (app/Http/Controllers/Api/LinkController.php, StoryController.php, ChestController.php, AlbumController.php, and also LinkArchiveController.php and ShareController.php) resolve the target row directly from the user-supplied route parameter using findOrFail($id) and then immediately perform the update or delete, with no comparison of $model->post->user_id against $request->user()->id. This is the classic CWE-639 Authorization Bypass Through User-Controlled Key pattern: the object identifier is supplied by the client, the endpoint is reachable by any authenticated principal, and the authorization decision that should bind the object to its owner is simply absent. Because identifiers are monotonically increasing integers, enumeration is trivial and requires no special tooling. The upstream fix in pull request 110 adds eager loading of the post relation and an explicit ownership gate - $link = Link::with('post')->findOrFail($id); if ($link->post->user_id !== $request->user()->id) { abort(403); } - applied across the update and delete handlers, confirming the root cause is missing row-level ownership enforcement rather than a routing or authentication defect. Note the CVSS 4.0 vector supplied with the record shows PR:L (low privileges required), AV:N (network reachable) and VI:H (high integrity impact), matching the independent CVSS 3.1 assessment of AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L.

Know when the next one hits your stack

  • 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 7.1 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
vuln.today AI 7.1 HIGH

Network API with low complexity but requires an authenticated non-admin account (PR:L); overwrite/delete of others' content gives I:H and some availability loss (A:L), with no data disclosure so C:N.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:L/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
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Shaark 1.2.13 through 1.2.44 contains a missing authorization vulnerability in the Link, Story, Chest and Album API controllers that skips ownership checks. Authenticated non-admin users can send PUT or DELETE requests to /api/{link,story,chest,album}/{id} with numeric IDs to overwrite or delete other users' content, including private items.

Executive ViewAI

Why It Matters

Shaark versions 1.2.13 through 1.2.44 carry an access-control flaw that allows any user holding a basic account to modify or permanently delete other users' links, stories, chests and albums - including private items and content belonging to other tenants - on multi-user instances. Because no vendor patch is available yet, every organization running an affected release remains exposed for the foreseeable future and must rely on configuration restrictions, monitoring and backup discipline to contain the risk. Exposure is limited to multi-user deployments where attackers can obtain an account through open registration or an existing tenant, but the resulting loss and destruction of user content should be treated as a priority for security and product leadership.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: disable or administratively gate open registration so attackers cannot self-provision a low-privilege account; restrict the instance to single-user or trusted-tenant operation where multi-tenancy is not required; block or filter non-administrator PUT and DELETE requests to the /api/link, /api/story, /api/chest and /api/album endpoints at the reverse proxy or WAF; enforce least-privilege role assignment and shorten session lifetimes; enable detailed request logging and alert on sequential-ID access patterns or cross-owner write and delete activity; maintain frequent, tested, offline backups of links, stories, chests and albums to enable restoration of destroyed or altered content; and isolate affected instances on a segmented network segment until a fixed release above 1.2.44 is available and deployed.

Threat Intelligence Overview

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Low
self-hosted open-source Laravel bookmarking app, niche hobbyist footprint
Social Media
1
Sightings
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 HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
High

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
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