CVE-2026-54529: Input Validation

Published Sep 9, 2026
·
Updated

Summary

ModelView.sortquery() uses the attacker-controlled sortBy list-view query parameter without checking it against the configured columnsortablelist allow-list. The value is resolved with getattr(model, ...) and fed into relationship joins and orderby(), so a request can sort by any column of the model — including ones hidden from columnlist — and, via a dotted path, by columns of related models. Because row order then reflects the value of an unexposed column, this is an information-exposure ordering oracle.

Root cause

columnsortablelist is consulted only in the list template to decide which header links to render; the server never enforces it, so removing a column from the UI does not prevent sorting by it.

Exploitation

A single request leaks the relative ordering of an unexposed column; the asc↔desc reversal confirms rows are ordered by the secret's actual value. Pairing sortBy with searchable/filterable columns and pagination can narrow the oracle toward specific values, though value recovery is conditional on having a filterable target column.

Affected Software

1 affected componentFixes available
pip/sqladmin<0.27.1
0.27.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade pip/sqladmin to a version that resolves this vulnerability.

    Fixed in 0.27.1

Event History

Sep 9, 2026
Advisory Published
via GitHub·06:01 PM
Data Sourced
via GitHub·06:01 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Who can exploit this issue?

An unauthenticated remote requester can exploit it where they can reach a SQLAdmin model list view. No privileges or user interaction are required.

2

Are columns hidden from the list view protected from sorting?

No. Removing a field from column_list or omitting it from column_sortable_list only affects rendered header links; the server accepts attacker-supplied sortBy values without enforcing the sortable-column allow-list.

3

What information can an attacker obtain?

The attacker can determine the relative ordering of otherwise unexposed columns on the model, including columns reached through dotted related-model paths. Reversing asc and desc can confirm that the ordering reflects the hidden value; more targeted recovery may be possible when searchable or filterable columns and pagination are available.

4

What should be done if patching cannot happen immediately?

Restrict access to affected SQLAdmin list views, particularly for unauthenticated users, and avoid exposing models that contain sensitive fields or relationships. Hiding columns in the UI alone does not mitigate the issue.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203