Skip to content

CP-14829 - Patch critical image-upload security vulnerability - #83

Merged
bernardodsanderson merged 2 commits into
mainfrom
CP-14829
Aug 3, 2026
Merged

CP-14829 - Patch critical image-upload security vulnerability#83
bernardodsanderson merged 2 commits into
mainfrom
CP-14829

Conversation

@bernardodsanderson

Copy link
Copy Markdown
Collaborator

CP-14829

What

DocuSeal now runs a patched Rails release and blocks unsafe image processing so crafted uploads cannot read server files or secrets.

Why

CVE-2026-66066 is a critical Active Storage / libvips issue. Submitters can upload images without auth, so production was exposed until patched.

How to test

  1. Confirm Gemfile.lock has rails/activestorage 8.0.5.1
  2. Boot the app and complete a signing flow (signature PNG/JPEG, optional stamp)
  3. Confirm template preview and completed result PDF still generate
  4. Deploy staging, re-check a full e2e sign → complete, then deploy production

What
DocuSeal now runs a patched Rails release and blocks unsafe image processing so crafted uploads cannot read server files or secrets.

Why
CVE-2026-66066 is a critical Active Storage / libvips issue. Submitters can upload images without auth, so production was exposed until patched.

How to test
1. Confirm Gemfile.lock has rails/activestorage 8.0.5.1
2. Boot the app and complete a signing flow (signature PNG/JPEG, optional stamp)
3. Confirm template preview and completed result PDF still generate
4. Deploy staging, re-check a full e2e sign → complete, then deploy production
if defined?(Vips) && Vips.respond_to?(:block_untrusted)
Vips.block_untrusted(true)
else
warn 'WARNING: Vips.block_untrusted unavailable (libvips < 8.13?) — CVE-2026-66066 mitigation NOT active'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we raise an Airbrake for this so it's super noisy vs just casually logged?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea!

@spaulsandhu spaulsandhu left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thanks for jumping on this, one comment about the way we're logging this otherwise, good to go.

I'd make sure to get the 👍🏽 from @ehourigan before merging though ❤️

@ehourigan ehourigan left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bernardodsanderson
bernardodsanderson merged commit e9721e8 into main Aug 3, 2026
5 checks passed
@bernardodsanderson
bernardodsanderson deleted the CP-14829 branch August 3, 2026 15:50
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.

3 participants