CVE-2026-45342

LinkAce 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.
CVSS

No CVSS.

Configurations

No configuration.

History

21 Jul 2026, 10:10

Type Values Removed Values Added
Summary
  • (es) LinkAce es un archivo autoalojado para recopilar enlaces de sitios web. Anterior a la versión 2.5.6, LinkAce contiene una vulnerabilidad de Referencia Directa a Objeto Insegura en la capa de política de autorización que permite a cualquier usuario autenticado modificar recursos propiedad de otros usuarios. Los tipos de recursos afectados son enlaces, listas, etiquetas y notas. Tanto la interfaz de usuario web como la API REST son vulnerables. La causa raíz se encuentra en los métodos update() de las cuatro políticas de modelo: LinkPolicy, LinkListPolicy, TagPolicy y NotePolicy. Cada uno delega en un método de verificación de acceso (por ejemplo, userCanAccessLink()) que devuelve verdadero para cualquier recurso con visibilidad no privada, independientemente de quién sea su propietario. Esto significa que cualquier usuario registrado puede editar cualquier recurso público o interno en toda la instancia. Los métodos delete() en los mismos archivos de política requieren correctamente la propiedad a través de $link->user->is($user), lo que confirma que update estaba destinado a ser solo para el propietario. El mismo fallo existe en la capa de la API a través de AuthorizesUserApiActions::userCanUpdateModel(), que refleja la verificación de solo visibilidad defectuosa en lugar de la verificación de propiedad utilizada por userCanDeleteModel(). Las operaciones de edición masiva a través de BulkEditController también están afectadas. Esta vulnerabilidad se corrige en la versión 2.5.6.

29 May 2026, 16:16

Type Values Removed Values Added
References () https://github.com/Kovah/LinkAce/security/advisories/GHSA-cj8f-h888-m57m - () https://github.com/Kovah/LinkAce/security/advisories/GHSA-cj8f-h888-m57m -

28 May 2026, 22:17

Type Values Removed Values Added
New CVE

Information

Published : 2026-05-28 22:17

Updated : 2026-07-21 10:10


NVD link : CVE-2026-45342

Mitre link : CVE-2026-45342

CVE.ORG link : CVE-2026-45342


JSON object : View

Products Affected

No product.

CWE
CWE-639

Authorization Bypass Through User-Controlled Key