Résumé
Unleash: Clone-feature lets a user copy a feature from a project they cannot read
Détails de l’avis
Summary
The clone-feature endpoint supports copying features across projects, but it does not verify that the caller can access the source project. A user with create permissions in one project can clone a feature from another project they cannot read and then inspect the copied configuration.
This vulnerability cannot be confirmed without Enterprise access. Report is based on a circumstantial evidence in the open-source repository.
Details
src/lib/features/feature-toggle/feature-toggle-service.ts implements cloneFeatureToggle. This operation needs authorization for both sides: permission to read/copy the source feature and permission to create the destination feature.
The clone path validates permissions against the destination project, but not against the source project that owns featureName. Because feature names are globally unique, a caller can reference a feature outside projects they can access.
PoC
- Create or identify two projects:
P1with a private or restricted feature namedsecret-feature, andP2where the attacker has clone/create permissions. - Authenticate as the attacker.
- Send:
POST /api/admin/projects/P2/features/secret-feature/clone
Content-Type: application/json
{ "name": "secret-feature-copy" }
- Open
P2and inspectsecret-feature-copy. Verify if strategy parameters, constraints, variants, and variant payloads from the source feature have been copied.
Impact
Users with permissions on one project can disclose feature configuration from another project if they know or guess the source feature name. Feature names could be available in more public applications that have a common SDK access to multiple projects.
Références
Vulnérabilités liées
Tout Supply chain →- MEDIUMCVE-2026-107850
Contao: Improper access control in the preview links module
- MEDIUMCVE-2026-91980
Vikunja: Any user can enumerate every team and its members by attaching arbitrary teams to a throwaway project
- MEDIUMCVE-2026-91984
Vikunja: Cross-tenant task-position rows can be injected into arbitrary project views via the unvalidated project_view_id in the task position endpoint (v1 and v2)
- HIGHCVE-2026-91985
Vikunja: Read-only project members can obtain any link share's access hash via the single-share read endpoint (v1 and v2) and escalate to the share's permission level
- HIGHCVE-2026-76216
Vikunja: Link-share principal-type confusion enables cross-account team removal, bot takeover, and roster disclosure
- CRITICALCVE-2026-68582
Vikunja: Link-share token reads any tenant's kanban buckets and enumerates usernames/IDs instance-wide (BOLA)