CVE-2026-93477 in ash
Zusammenfassung
von VulDB • 25.09.2026
Eine Schwachstelle für die unsachgemäße Steuerung der Änderung dynamisch bestimmter Objektattribute in ash-project ash ermöglicht es einem Benutzer, den Wert eines privaten Aktionsarguments auf den Pfaden für Bulk-Löschungen und Bulk-Aktualisierungen festzulegen.
Aktionsargumente, die mit `public?: false` deklariert sind, sollen ausschließlich von vertrauenswürdigen serverseitigem Code (beispielsweise über `Ash.Changeset.set_private_argument/3`) gesetzt werden und dürfen nicht aus Benutzereingaben setzbar sein. CVE-2026-55736 behob den Pfad für Nicht-Bulk-Changesets, indem private Argumente aus vom Benutzer bereitgestellten Parameter-Mappen entfernt wurden; die Pfade für Bulk-Löschungen und Bulk-Aktualisierungen waren jedoch nicht abgedeckt.
`Ash.Actions.Destroy.Bulk.base_changeset/5` und `Ash.Actions.Update.Bulk.base_changeset/5` vergleichen jeden Schlüssel in der vom Aufrufer bereitgestellten Parameter-Map mit allen Argumenten der Aktion ohne eine Prüfung von `public?`, und wenden die Übereinstimmungen dann auf den Basis-Changeset an. Ein Aufrufer, der Parameter für eine Bulk-Löschungs- oder Bulk-Aktualisierungsaktion einreichen kann (beispielsweise über AshJsonApi, AshGraphql oder einen Controller, der Anfrageparameter an `Ash.bulk_destroy/4` oder `Ash.bulk_update/4` weiterleitet), kann daher jedes private Argument dieser Aktion festlegen, einschließlich eines Arguments, das in den Änderungen oder Validierungen der Aktion durch eine `arg(...)`-Vorlage referenziert wird. Je nachdem, wie die Anwendung das Argument verwendet (z. B. eine `acting_user_id`, die die Autorisierung oder den Datensatzeigentum steuert, oder Audit-Metadaten), kann dies zu einer Integritätsverletzung oder einem Privilegienmissbrauch führen.
Die Korrektur erfordert ein `public?` bei der Argumentabgleichung auf beiden Bulk-Pfaden; private Argumente bleiben über die Option `:private_arguments` serverseitig setzbar.
Dieses Problem betrifft ash: von Version 2.17.15 bis vor 3.33.11.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.