VDB
Sign up
MEDIUM5.9

PYSEC-2026-1449

hermes's raw options logging may disclose secrets passed in via subcommand options argument

Quick fix

PYSEC-2026-1449 — hermes: upgrade to the fixed version with the command below.

pip install --upgrade 'hermes>=0.9.1'

Details

Thanks, @thunze for reporting this!

`hermes` subcommands take arbitrary options under the `-O` argument. These have been logged in raw form since https://github.com/softwarepub/hermes/commit/7f64f102e916c76dc44404b77ab2a80f5a4e59b1 in: https://github.com/softwarepub/hermes/blob/3a92f42b2b976fdbc2c49a621de6d665364a7cee/src/hermes/commands/cli.py#L66

If users provide sensitive data such as API tokens (e.g., via `hermes deposit -O invenio_rdm.auth_token SECRET`), these are written to the log file in plain text, making them available to whoever can access the log file.

### Impact

As currently, `hermes.log` is not yet uploaded automatically as an artifact in CI, this vuln impacts:

- local users working on shared access computers, where logs may be written to a commonly accessible file system - CI users whose CI logs are accessible to others, e.g., through group or organization rights

Potentially, if the changes merged from https://github.com/softwarepub/ci-templates/pull/13 are merged into `ci-templates` via https://github.com/softwarepub/ci-templates/pull/14, this would automate the disclosure of Invenio auth tokens at least for all CI runs against Invenio instances!

### Patches

This has been patched in [`hermes` 0.9.1](TODO) by masking all values passed using `-O`.

### Workarounds

Upgrade to `hermes` >= 0.9.1.

Are you affected?

Enter the version of the package you're using.

Affected packages

PyPI/hermes
Introduced in: 0.8.1Fixed in: 0.9.1
Fixpip install --upgrade 'hermes>=0.9.1'

References