CVE-2026-45342
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedLinkAce is a self-hosted archive to collect website links. Prior to 2.5.6, LinkAce contains an Insecure Direct Object Reference vulnerability in the authorization policy layer that allows any authenticated user to modify resources owned by other users. The affected resource types are links, lists, tags, and notes. Both the web UI and the REST API are vulnerable. The root cause is in the update() methods of all four model policies: LinkPolicy, LinkListPolicy, TagPolicy, and NotePolicy. Each delegates to an access-check method (e.g., userCanAccessLink()) that returns true for any resource with non-private visibility, regardless of who owns it. This means any registered user can edit any public or internal resource across the entire instance. The delete() methods in the same policy files correctly require ownership via $link->user->is($user), which confirms that update was intended to be owner-only. The same flaw exists in the API layer through AuthorizesUserApiActions::userCanUpdateModel(), which mirrors the broken visibility-only check instead of the ownership check used by userCanDeleteModel(). Bulk edit operations via BulkEditController are also affected. This vulnerability is fixed in 2.5.6.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceLinkAce prior to 2.5.6 has an IDOR vulnerability in its authorization layer where update() methods in LinkPolicy, LinkListPolicy, TagPolicy, and NotePolicy only check resource visibility (public/internal) instead of ownership. Any authenticated user can modify any non-private resource across the entire instance. The same flaw exists in the REST API layer via AuthorizesUserApiActions::userCanUpdateModel() and BulkEditController.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- Low
- Authentication
- X
- User interaction
- None
- Scope
- X
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Check LinkAce versionLocate the version file or admin panel in your LinkAce installation and note the current version numberAffected if Version is before 2.5.6
-
Verify update authorization on linksAs a low-privileged authenticated user, attempt to modify a link owned by another user that is marked as internal (not private) via the web UI or REST APIAffected if Update succeeds without ownership verification - any authenticated user can modify non-private resources they do not own
-
Verify update authorization on listsAs a low-privileged authenticated user, attempt to modify a list owned by another user that is marked as internal via the web UI or REST APIAffected if Update succeeds - the vulnerability affects lists similarly to links
-
Verify update authorization on tags and notesAs a low-privileged authenticated user, attempt to modify tags or notes owned by another user that are internal via the web UI or REST APIAffected if Update succeeds - the authorization flaw extends to tags and notes
-
Check BulkEditController behaviorAttempt to bulk-update resources (links, lists, tags, notes) owned by other users through the BulkEditController featureAffected if Bulk edit operations succeed on non-private resources owned by other users
-
Confirm delete operations are protectedAttempt to delete a resource owned by another user to verify that delete() methods correctly enforce ownershipAffected if Delete is properly blocked while update is allowed - this asymmetry confirms the IDOR (delete correctly checks ownership, update does not)
Your environment is affected if you run LinkAce version below 2.5.6 and authenticated users can update (but not delete) non-private resources they do not own.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scopedUpgrade to LinkAce 2.5.6 or later. Until then, monitor for unauthorized modifications to shared resources and consider restricting account access.
2.5.6
- Back up your existing LinkAce database and application files before upgrading
- If running via Docker: pull the latest Docker image for version 2.5.6
- If running from source: run 'git pull' or download version 2.5.6 from the repository, then run any pending database migrations with 'php artisan migrate'
- Verify the upgrade by logging in and confirming that users can no longer edit resources they do not own
- Test both the web UI and REST API to confirm the authorization fix is working correctly
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation3.0 h
- Implementation6.0 h
- Testing4.0 h
- Review / QA2.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $4,224.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2026-45342 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2026-45342 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data