TavernKeeper Scan Report

enclavum/otaku

Commit e843e30 Reviewed

No material or immediate-danger concern was identified in this review.

This advisory report describes what the named tools and review process found at one exact commit. Unknown or unobserved behavior may still exist.

0 immediate danger 0 material 5 low

What this review found

No material or immediate-danger item was identified.

Contextual expected matches (5)

OpenGrep reported tavernkeeper.persistence.startup-modification

Expected behavior · high confidence

The installer adds the tool's folder to your shell startup file so the tool is available in new terminal windows. It checks before writing to avoid duplicates, tells you what it did, and only touches files in your own home folder. This is normal and expected for an install script.

Technical evidence

Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.

Contextual assessment: Detailed technical wording was omitted by the public report safety filter.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
opengrep 1.26.0
Rule
tavernkeeper.persistence.startup-modification
File role
production
Source
install.sh:240

OpenGrep reported tavernkeeper.download-and-execute.shell-pipeline

Expected behavior · high confidence

The install script shows the common one-command install pattern. When it needs to install a helper tool, it downloads it to a temp file first and checks it is not empty before running it, rather than blindly piping. This is normal behavior for a software installer the user deliberately runs.

Technical evidence

Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.download-and-execute.shell-pipeline. The match applies to this repository.

Contextual assessment: The scanner matched a comment in file that documents the one-line install pattern. The actual script does not pipe curl directly into sh for execution; instead, ensure_uv downloads the uv installer to a temporary file, verifies it is non-empty, then executes it. This is a standard, transparent install-script pattern for an open-source CLI tool, explicitly invoked by the user. The script avoids sudo, stays within the home directory, and is disclosed in comments and the README.

Impact: low · Exploitability: unlikely

Developer action: none

Scanner
opengrep 1.26.0
Rule
tavernkeeper.download-and-execute.shell-pipeline
File role
production
Source
install.sh:4-5

OpenGrep reported tavernkeeper.download-and-execute.shell-pipeline

Expected behavior · high confidence

This is just the README telling users how to install the tool. It is text, not code, and the user must choose to copy and run the command themselves. This is a normal way to document installation.

Technical evidence

Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.download-and-execute.shell-pipeline. The match applies to this repository.

Contextual assessment: The scanner matched the documented install command in file, a documentation file with no executable behavior. The line is installation instructions for users to copy and run deliberately. The actual install script behavior is reviewed separately. Documentation showing a curl-pipe-to-sh one-liner is a standard, widespread install pattern and does not itself constitute shipped executable behavior.

Impact: low · Exploitability: unlikely

Developer action: none

Scanner
opengrep 1.26.0
Rule
tavernkeeper.download-and-execute.shell-pipeline
File role
documentation
Source
README.md:57-58

OpenGrep reported tavernkeeper.persistence.startup-modification

Expected behavior · high confidence

The installer adds the tool's folder to your bash startup file so the tool works in new terminal sessions. It avoids duplicate entries, tells you what it changed, and stays within your home directory. This is normal install script behavior.

Technical evidence

Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.

Contextual assessment: Detailed technical wording was omitted by the public report safety filter.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
opengrep 1.26.0
Rule
tavernkeeper.persistence.startup-modification
File role
production
Source
install.sh:247

OpenGrep reported tavernkeeper.dynamic-execution.python-eval-or-shell

Expected behavior · high confidence

The app can run a command you specify in your own settings file to fetch your encryption key from a password manager or hardware token. You choose and write the command yourself; the app does not receive it from anyone else. This is a legitimate feature for users who want to control how their encryption key is retrieved.

Technical evidence

Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.python-eval-or-shell. The match applies to this repository.

Contextual assessment: The CommandKek._run method calls subprocess.run with shell=True using the value of self._enc.retrieve_command. This value originates from the user's own configuration file under the [encryption] section, not from any external or untrusted input. The feature is explicitly designed to let users retrieve their encryption key from an external source such as a password manager or hardware-token script, which is disclosed in the class docstring and the README. The command is user-authored and user-invoked on their own machine, which is the expected and proportionate capability for this stated purpose.

Impact: low · Exploitability: unlikely

Developer action: none

Scanner
opengrep 1.26.0
Rule
tavernkeeper.dynamic-execution.python-eval-or-shell
File role
production
Source
otaku/crypto.py:328

Coverage and limitations

JavaScript coverage

Tools

Limitations

Technical scan identity