Skip to content

ASM-21154 pull upstream Adminer 5.5.1 into the Akeyless fork - #6

Merged
Hanan-Akeyless merged 147 commits into
masterfrom
ASM-21154-pull-upstream-5.5.1
Oct 28, 2026
Merged

Hanan-Akeyless merged 147 commits into
masterfrom
ASM-21154-pull-upstream-5.5.1

Conversation

@Hanan-Akeyless

Copy link
Copy Markdown
Collaborator

Pulls upstream Adminer 5.5.1 into the fork for the security fixes since 5.4.2, the same way 5.4.2 came in (#3). Once merged, tag v5.5.1.1 and point the V1 web bastion at it.

Jira: ASM-21154

Why

Twelve upstream advisories affect the 5.4.2 base that V1 ships today (v5.4.2.2). Nine are fixed in 5.4.3, among them GHSA-r4x9-5m63-3vxw (critical, MSSQL server value injection), GHSA-3582-q6xq-5vf7 and the SQLite ones (high), and GHSA-h6jr-7pr6-grgj (the version string reflection Or reproduced). Three more are fixed in 5.5.0 and 5.5.1. The full list is in CHANGELOG.md. 5.5.1 is the last 5.x release, so the login flow and plugin API the bastion relies on do not change.

What changes

  • Merge of upstream v5.5.1. No conflicts.
  • Our changes carry over unchanged, the diff against v5.5.1 is the same six files as against v5.4.2 at v5.4.2.2: MongoDB retry and authSource, the ssl_mode plugin with the MSSQL encrypt default, Postgres sslrootcert, the last-page row count fallback, adminer-plugins.php.
  • adminer-5.4.2.php is replaced by adminer-5.5.1.php, built with php compile.php on php:8.4-cli. That command rebuilds the committed adminer-5.4.2.php at v5.4.2.2 byte for byte, so the artifact is made the way the last one was.

Checked

  • The compiled file and both plugins pass php -l and serve the login page with no warnings on PHP 8.1 and 8.4.
  • Not yet: a login through the bastion. That is the V1 Portal check on the lab (MySQL, Oracle, SQL Server), which also proves the ssl_mode plugin loads, since SQL Server only connects with its encrypt default.

🤖 Generated with Claude Code

vrana and others added 30 commits February 8, 2026 16:44
Add complete Croatian translation for Adminer, including all strings
in adminer/lang/hr.inc.php, plural forms support in lang.inc.php,
and Croatian descriptions and translations for all plugins.
vrana and others added 26 commits July 20, 2026 22:34
Co-Authored-By: Claude Fable 5 <[email protected]>
deflate compresses ~27% better than LZW even re-encoded to the same
ASCII-safe alphabet; the all-language build shrinks from 573 to 488 KB.
Decompression uses gzinflate() with a pure-PHP inflate() fallback for
PHP builds without the zlib extension.

Co-Authored-By: Claude Fable 5 <[email protected]>
JUSH now carries both vendors' doc pages in 'mysql-key maria-key' entries
regenerated by its update/sql.php from the MySQL 9.7 manual and the
MariaDB docs, so the per-key MariaDB rewrites here are no longer needed -
only the base URL and the version are set at runtime. Names one vendor
doesn't know stay plain keywords or text there, and plugin variables are
not highlighted at all.

Co-Authored-By: Claude Fable 5 <[email protected]>
PostgreSQL uses this for connecting via socket: 'host=/tmp'.
Elasticsearch uses https:// prefix.
PHPCS 4.0 removed CSS/JS scanning (all Squiz.CSS sniffs and
Squiz.Objects.ObjectMemberComma) and the deprecated
Generic.Functions.CallTimePassByReference. It also split the
PSR12.Files.FileHeader.SpacingAfterBlock error code by block type.

Co-Authored-By: Claude Fable 5 <[email protected]>
The exclude pattern for compiled adminer*.php and editor*.php also matched
adminer/include/adminer.inc.php, editor/include/adminer.inc.php and
plugins/adminer.js.php anywhere in the tree. Anchor it to the repo root,
exclude the local adminer-plugins used by the dev server and fix the style
violations these files accumulated while unchecked.

Co-Authored-By: Claude Fable 5 <[email protected]>
Store schema field positions in a separate map instead of adding a pos
key to Field arrays, mark the set_schema() stub as impure and update
the ignores for changed PHPStan messages.

Co-Authored-By: Claude Fable 5 <[email protected]>
CI creates vendor/ by Composer and mounts the checkout at /app so the
plugins excludes cannot rely on the repo directory being named adminer.

Co-Authored-By: Claude Fable 5 <[email protected]>
Adminer has no Composer dependencies so vendor/bin/phpstan never exists.

Co-Authored-By: Claude Fable 5 <[email protected]>
Found by Biome lint/style/noDescendingSpecificity.

Co-Authored-By: Claude Fable 5 <[email protected]>
Merge upstream v5.5.1 for its security fixes since 5.4.2 (GHSA-r4x9-5m63-3vxw,
GHSA-h6jr-7pr6-grgj, GHSA-3582-q6xq-5vf7 and the rest listed in CHANGELOG.md for
5.4.3 to 5.5.1). The Akeyless changes carry over unchanged: the MongoDB retry and
authSource behavior, the ssl_mode plugin with the MSSQL encrypt default, the
Postgres sslrootcert DSN, and the last-page row count fallback.

Replace the compiled adminer-5.4.2.php with adminer-5.5.1.php, built with
php compile.php on php:8.4-cli. The same command reproduces the committed
adminer-5.4.2.php at v5.4.2.2 byte for byte.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@coderabbitai

coderabbitai Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

  • Run on-demand review

This review includes 159 billable files and costs up to $39.75.

View limit details

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: 5cb2411d-5b27-4df0-9917-693fe3126a4e
Commits

Reviewing files that changed from the base of the PR and between cec1b54 and 9c858a3.

Files selected for processing: 159
  • .gitattributes
  • .github/workflows/ci.yml
  • CHANGELOG.md
  • CLAUDE.md
  • adminer-5.4.2.php
  • adminer-5.5.1.php
  • adminer/create.inc.php
  • adminer/db.inc.php
  • adminer/drivers/mssql.inc.php
  • adminer/drivers/mysql.inc.php
  • adminer/drivers/oracle.inc.php
  • adminer/drivers/pgsql.inc.php
  • adminer/drivers/sqlite.inc.php
  • adminer/dump.inc.php
  • adminer/file.inc.php
  • adminer/foreign.inc.php
  • adminer/include/adminer.inc.php
  • adminer/include/auth.inc.php
  • adminer/include/bootstrap.inc.php
  • adminer/include/compress.inc.php
  • adminer/include/decompress.inc.php
  • adminer/include/design.inc.php
  • adminer/include/driver.inc.php
  • adminer/include/editing.inc.php
  • adminer/include/functions.inc.php
  • adminer/include/html.inc.php
  • adminer/include/lang.inc.php
  • adminer/include/version.inc.php
  • adminer/indexes.inc.php
  • adminer/lang/ar.inc.php
  • adminer/lang/bg.inc.php
  • adminer/lang/bn.inc.php
  • adminer/lang/bs.inc.php
  • adminer/lang/ca.inc.php
  • adminer/lang/cs.inc.php
  • adminer/lang/da.inc.php
  • adminer/lang/de.inc.php
  • adminer/lang/el.inc.php
  • adminer/lang/es.inc.php
  • adminer/lang/et.inc.php
  • adminer/lang/fa.inc.php
  • adminer/lang/fi.inc.php
  • adminer/lang/fr.inc.php
  • adminer/lang/gl.inc.php
  • adminer/lang/he.inc.php
  • adminer/lang/hi.inc.php
  • adminer/lang/hr.inc.php
  • adminer/lang/hu.inc.php
  • adminer/lang/id.inc.php
  • adminer/lang/it.inc.php
  • adminer/lang/ja.inc.php
  • adminer/lang/ka.inc.php
  • adminer/lang/ko.inc.php
  • adminer/lang/lt.inc.php
  • adminer/lang/lv.inc.php
  • adminer/lang/ms.inc.php
  • adminer/lang/nl.inc.php
  • adminer/lang/no.inc.php
  • adminer/lang/pl.inc.php
  • adminer/lang/pt-br.inc.php
  • adminer/lang/pt.inc.php
  • adminer/lang/ro.inc.php
  • adminer/lang/ru.inc.php
  • adminer/lang/sk.inc.php
  • adminer/lang/sl.inc.php
  • adminer/lang/sr.inc.php
  • adminer/lang/sv.inc.php
  • adminer/lang/ta.inc.php
  • adminer/lang/th.inc.php
  • adminer/lang/tr.inc.php
  • adminer/lang/uk.inc.php
  • adminer/lang/uz.inc.php
  • adminer/lang/vi.inc.php
  • adminer/lang/xx.inc.php
  • adminer/lang/zh-tw.inc.php
  • adminer/lang/zh.inc.php
  • adminer/procedure.inc.php
  • adminer/processlist.inc.php
  • adminer/schema.inc.php
  • adminer/select.inc.php
  • adminer/sql.inc.php
  • adminer/static/default.css
  • adminer/static/editing.js
  • adminer/static/functions.js
  • adminer/user.inc.php
  • compile.php
  • developing.md
  • editor/include/adminer.inc.php
  • editor/include/connect.inc.php
  • editor/include/editing.inc.php
  • externals/JsShrink
  • externals/PhpShrink
  • externals/jush
  • lang.php
  • phpcs.xml
  • phpstan.neon
  • plugins/adminer.js.php
  • plugins/backward-keys.php
  • plugins/before-unload.php
  • plugins/config.php
  • plugins/dark-switcher.php
  • plugins/database-hide.php
  • plugins/designs.php
  • plugins/drivers/clickhouse.php
  • plugins/drivers/elastic.php
  • plugins/drivers/firebird.php
  • plugins/drivers/igdb.php
  • plugins/drivers/redis.php
  • plugins/drivers/simpledb.php
  • plugins/dump-alter.php
  • plugins/dump-bz2.php
  • plugins/dump-date.php
  • plugins/dump-json.php
  • plugins/dump-php.php
  • plugins/dump-xml.php
  • plugins/dump-zip.php
  • plugins/edit-calendar.php
  • plugins/edit-foreign.php
  • plugins/edit-textarea.php
  • plugins/editor-setup.php
  • plugins/editor-views.php
  • plugins/email-table.php
  • plugins/enum-option.php
  • plugins/file-upload.php
  • plugins/foreign-system.php
  • plugins/frames.php
  • plugins/highlight-codemirror.php
  • plugins/highlight-monaco.php
  • plugins/highlight-prism.php
  • plugins/json-column.php
  • plugins/login-ip.php
  • plugins/login-otp.php
  • plugins/login-password-less.php
  • plugins/login-reverse-proxy.php
  • plugins/login-servers.php
  • plugins/login-ssl.php
  • plugins/login-table.php
  • plugins/master-slave.php
  • plugins/menu-links.php
  • plugins/pretty-json-column.php
  • plugins/row-numbers.php
  • plugins/select-email.php
  • plugins/slugify.php
  • plugins/sql-gemini.php
  • plugins/sql-log.php
  • plugins/table-indexes-structure.php
  • plugins/table-structure.php
  • plugins/tables-filter.php
  • plugins/timeout.php
  • plugins/tinymce.php
  • plugins/translation.php
  • plugins/version-github.php
  • plugins/version-noverify.php
  • tests/compress.php
  • tests/host_port.php
  • tests/mariadb.html
  • tests/mysql.html
  • tests/sqlite.html
  • todo.txt
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

Upstream v5.5.1 fails its own phpstan.neon under current PHPStan (a constant-folded
VERSION comparison, an undefined-variable report, and ignore patterns that no longer
match). Upstream fixed these later through unrelated refactors. Add two targeted
ignores and stop failing on unmatched ignores, instead of editing upstream source.
Clean on PHPStan 2.1.50, 2.3.0 and latest.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
@Hanan-Akeyless
Hanan-Akeyless merged commit a867892 into master Oct 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants