Skip to content

fix(selfcheck): P0-4 check reports "VULNERABLE" when ffmpegthumbnailer is absent - #12

Open
nocstah wants to merge 1 commit into
Percius04:masterfrom
nocstah:fix/selfcheck-video-thumb-false-alarm
Open

fix(selfcheck): P0-4 check reports "VULNERABLE" when ffmpegthumbnailer is absent#12
nocstah wants to merge 1 commit into
Percius04:masterfrom
nocstah:fix/selfcheck-video-thumb-false-alarm

Conversation

@nocstah

@nocstah nocstah commented Aug 18, 2026

Copy link
Copy Markdown

The thumbnail-video.sh symlink regression check fails on any machine without
ffmpegthumbnailer, and reports it as a security failure:

[FAIL] thumbnail-video.sh: pre-planted dangling symlink at dest is not
followed (P0-4 regression) — VULNERABLE: dest still a symlink=false
victim target created=false

Both values printed there are the SAFE ones. The actual cause is the third
term, which the message does not print:

var safe = !stillSymlink && !victimCreated && destIsRegular

destIsRegular can only be true if a thumbnail was really written, which needs
ffmpegthumbnailer -- an optional dependency per the README. Without it the
script correctly destroys the planted symlink and exits without writing, so
the host is safe, and the suite calls it VULNERABLE anyway. On a fresh clone
here that is the only failing check out of 125.

This splits the security assertion from the functional one:

  • !stillSymlink && !victimCreated -- the P0-4 property, asserted always.
  • destIsRegular -- only required when ffmpegthumbnailer
    is actually installed.

and adds destIsRegular to the failure message so a future failure says which
term broke. When the tool is missing the check passes with an explicit note
that thumbnail writing was not exercised, rather than silently implying full
coverage.

Verified both directions on a host WITHOUT ffmpegthumbnailer:

  • unmodified script -> PASS, "symlink safety verified (planted link
    destroyed, target never created); thumbnail write not exercised --
    ffmpegthumbnailer not installed"
  • script temporarily replaced with a deliberately vulnerable stand-in that
    writes through the planted symlink -> FAIL, "VULNERABLE: dest still a
    symlink=true victim target created=true dest is a regular file=true"

so the security property is still enforced on hosts that cannot run the
thumbnailer; it is only the functional half that is now conditional.

…gthumbnailer is absent

The thumbnail-video.sh symlink regression check fails on any machine without
ffmpegthumbnailer, and reports it as a security failure:

  [FAIL] thumbnail-video.sh: pre-planted dangling symlink at dest is not
         followed (P0-4 regression) — VULNERABLE: dest still a symlink=false
         victim target created=false

Both values printed there are the SAFE ones. The actual cause is the third
term, which the message does not print:

  var safe = !stillSymlink && !victimCreated && destIsRegular

destIsRegular can only be true if a thumbnail was really written, which needs
ffmpegthumbnailer -- an optional dependency per the README. Without it the
script correctly destroys the planted symlink and exits without writing, so
the host is safe, and the suite calls it VULNERABLE anyway. On a fresh clone
here that is the only failing check out of 125.

This splits the security assertion from the functional one:

  * !stillSymlink && !victimCreated  -- the P0-4 property, asserted always.
  * destIsRegular                     -- only required when ffmpegthumbnailer
                                         is actually installed.

and adds destIsRegular to the failure message so a future failure says which
term broke. When the tool is missing the check passes with an explicit note
that thumbnail writing was not exercised, rather than silently implying full
coverage.

Verified both directions on a host WITHOUT ffmpegthumbnailer:
  * unmodified script -> PASS, "symlink safety verified (planted link
    destroyed, target never created); thumbnail write not exercised --
    ffmpegthumbnailer not installed"
  * script temporarily replaced with a deliberately vulnerable stand-in that
    writes through the planted symlink -> FAIL, "VULNERABLE: dest still a
    symlink=true victim target created=true dest is a regular file=true"

so the security property is still enforced on hosts that cannot run the
thumbnailer; it is only the functional half that is now conditional.
nocstah added a commit to nocstah/omafiles that referenced this pull request Aug 21, 2026
146/1/147 after installing util-linux-script: v1.1 pipes every archive
compress/extract through `script` (fake PTY for live progress) and Fedora
splits that binary out of util-linux, so six checks failed as one cascade --
and real compress/extract quietly hung the same way. The one remaining
failure is the same pre-existing one a pristine build shows (PR Percius04#12).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nocstah added a commit to nocstah/omafiles that referenced this pull request Aug 21, 2026
…ency traps

util-linux-script (v1.1 pipes archive progress through `script`, Fedora
splits it out of util-linux) and ffmpegthumbnailer (without it the P0-4
symlink check misreports as VULNERABLE -- PR Percius04#12). Both installed; suite
clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

1 participant