Skip to content

papra

v@papra/[email protected] Security

This release includes 2 security fixes for security teams reviewing exposed deployments.

Published 14d Productivity & Wikis
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 2 known CVEs

Topics

app archive document documents self-hosted

Affected surfaces

auth rbac deps

Summary

AI summary

Broad release touches https://github.com/CorentinTh, https://github.com/JohnCuba, https://github.com/papra-hq/papra/pull/1080, and https://github.com/papra-hq/papra/pull/1074.

Changes in this release

Security Medium

Webhooks no longer follow HTTP redirects, mitigating SSRF risk.

Webhooks no longer follow HTTP redirects, mitigating SSRF risk.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: high

Security Medium

Enforced webhook SSRF validation, preventing potential TOCTOU dns rebinding attacks.

Enforced webhook SSRF validation, preventing potential TOCTOU dns rebinding attacks.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: high

Security Medium

Fixed authorization issue preventing tag updates/deletions scoped to organization.

Fixed authorization issue preventing tag updates/deletions scoped to organization.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Breaking Medium

Tag deletion endpoint now returns 204 No Content and 404 on non-existent tags.

Tag deletion endpoint now returns 204 No Content and 404 on non-existent tags.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: high

Feature Medium

Updated to Node.js 26 runtime environment.

Updated to Node.js 26 runtime environment.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: high

Feature Medium

Increased default max file size from 10MB to 25MB.

Increased default max file size from 10MB to 25MB.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Feature Medium

Added batch selection in document page for multiple tag management.

Added batch selection in document page for multiple tag management.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Feature Medium

Added content preview for YAML files.

Added content preview for YAML files.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Feature Medium

Added sorting options (name, creation date) in ascending/descending order for documents list.

Added sorting options (name, creation date) in ascending/descending order for documents list.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Feature Medium

Added batch document trash API endpoint.

Added batch document trash API endpoint.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Feature Medium

Added download file option in document list action menu.

Added download file option in document list action menu.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Feature Medium

Synchronized home page document pagination with query params for sharing/navigation.

Synchronized home page document pagination with query params for sharing/navigation.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Feature Medium

The documents page content now uses the whole width of the page.

The documents page content now uses the whole width of the page.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Feature Medium

Added size limits for webhook creation/update parameters (name 128 chars, secret 256 chars, URL 2048 chars).

Added size limits for webhook creation/update parameters (name 128 chars, secret 256 chars, URL 2048 chars).

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Feature Low

Increased default max file upload size from 10 MB to 25 MB (configurable).

Increased default max file upload size from 10 MB to 25 MB (configurable).

Source: granite4.1:30b@2026-05-20-audit

Confidence: low

Dependency Medium

Updated critical dependencies (better-auth, drizzle-orm, hono, ...) to fix transitive vulnerabilities.

Updated critical dependencies (better-auth, drizzle-orm, hono, ...) to fix transitive vulnerabilities.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: high

Bugfix Medium

Limited search query to 1024 characters.

Limited search query to 1024 characters.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Bugfix Medium

Removed logging of empty error cause with stack trace when no cause is present.

Removed logging of empty error cause with stack trace when no cause is present.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Bugfix Medium

Prevented long document names from pushing right columns out of container.

Prevented long document names from pushing right columns out of container.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Bugfix Medium

Removed weird shadows on UI components in light mode.

Removed weird shadows on UI components in light mode.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Bugfix Medium

When reopening quick search modal with existing query, input content is automatically selected.

When reopening quick search modal with existing query, input content is automatically selected.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: low

Refactor Medium

Switched Docker pnpm installation from corepack to npm global installation for Node.js 26 image.

Switched Docker pnpm installation from corepack to npm global installation for Node.js 26 image.

Source: granite4.1:8b-q6_K@2026-05-20

Confidence: high

Full changelog
  • #1080 47d44e0 Thanks @CorentinTh! - Fixed an authorization issue where tag updates and deletions were not scoped to the organization in the URL. Tag mutation endpoints are now correctly scoped to the requested organization.

    Addressing GHSA-wrx4-3vff-jm94, credit to @TinkAnet for the responsible disclosure.

  • #1074 e2e7fd4 Thanks @CorentinTh! - Limited search query to 1024 characters

  • #1099 086dccb Thanks @CorentinTh! - Webhooks no longer follow http redirects (3xx responses) when sending requests.

    Addressing GHSA-5g86-85rp-f9hx, credit to @FredrikEV for the responsible disclosure.

  • #1061 93c369d Thanks @CorentinTh! - Html-ish characters in email templates are now escaped instead of sanitized-out

  • #1067 79d4cac Thanks @CorentinTh! - Increased default max file size from 10MB to 25MB (can still be customized using DOCUMENT_STORAGE_MAX_UPLOAD_SIZE, disable by setting it to 0).

  • #1010 927c7d6 Thanks @CorentinTh! - Removed logging of a polluting empty error cause (with stack trace) when an error is thrown without a cause.

  • #1082 e8d19af Thanks @CorentinTh! - Added batch selection in the document page, allowing to select multiple documents (or all matching the current search) and either manage tags or delete them in one go.

  • #1080 47d44e0 Thanks @CorentinTh! - Tag deletion endpoint now returns a 204 No Content status code instead of 200 OK with an empty JSON object, and a 404 Not Found status code is returned when trying to delete a tag that does not exists for the organization.

  • #1015 5bdf0da Thanks @JohnCuba! - Synchronized the document pagination of the home page in query params to permit sharing and navigation.

  • #1096 2bb75ce Thanks @CorentinTh! - Updated some critical dependencies (better-auth, drizzle-orm, hono, ...) to fix transitive vulnerabilities. Please do not hesitate to report any regression you may encounter, especially if it is related to authentication or database access. Thanks!

  • #1034 c5ccac5 Thanks @CorentinTh! - Added content preview for yaml files

  • #1027 b154d2f Thanks @CorentinTh! - Removed weird shadows on ui components in light mode

  • #1091 4ab0f32 Thanks @CorentinTh! - The documents page content now uses the whole width of the page

  • #1082 e8d19af Thanks @CorentinTh! - Added a batch document tag management API endpoint.

  • #1097 928ffc3 Thanks @CorentinTh! - Switched docker image pnpm installation from corepack to npm global installation, as Node.js 26 image no longer ships corepack.

  • #1090 5ea8ca3 Thanks @CorentinTh! - Added sorting option in the documents list, allowing to sort documents by name, or creation date, in ascending or descending order.

  • #1098 7acca43 Thanks @CorentinTh! - Updated pnpm to v11

  • #1020 015bb53 Thanks @CorentinTh! - Added some size limits on the webhooks creation and update API endpoints parameters.

    • Names are limited to 128 characters.
    • Secret keys are limited to 256 characters.
    • URLs are limited to 2048 characters.
  • #1025 9c6985b Thanks @CorentinTh! - When reopening the quick search modal with existing query, the input content is automatically selected to allow easy replacement or editing.

  • #1033 5d55e41 Thanks @CorentinTh! - Changed the server endpoint validation library from zod to valibot, and improved some validation schemas in the process.

  • #1097 928ffc3 Thanks @CorentinTh! - Updated to Node.js 26

  • #1016 07d7109 Thanks @JohnCuba! - Removed native clear button of search bar in safari.

  • #1072 71d093f Thanks @mvlanga! - Added a download file option in document list action menu

  • #1089 aef3ef2 Thanks @CorentinTh! - Added sortField and sortOrder query parameters to the document list/search endpoint (GET /api/organizations/:organizationId/documents), allowing documents to be sorted by createdAt, updatedAt, name, or documentDate in ascending or descending order.

  • #1074 e2e7fd4 Thanks @CorentinTh! - Add batch document trash API endpoint.

  • #1099 086dccb Thanks @CorentinTh! - Webhooks ssrf validation is now enforced when sending webhook requests, preventing potential TOCTOU dns rebinding attacks (the exploitation window was very small and only theoretical though).

  • #1003 ad5e42d Thanks @JohnCuba! - Increased the sidebar collapsing breakpoint to improve the UX on tablets and small laptops.

  • #1016 07d7109 Thanks @JohnCuba! - Removed useless close button in the small-screen sidebar sheet.

  • #1003 ad5e42d Thanks @JohnCuba! - Prevented the users and organizations tables from forcing horizontal scrolling in the admin panels.

  • #1021 133d235 Thanks @CorentinTh! - Prevented long documents name from pushing the right columns out of the container.

Breaking Changes

  • Tag mutation endpoints now require organization scoping in URL; previous unscoped behavior is removed.
  • Webhook HTTP client no longer follows 3xx redirects (previously followed).
  • Document upload default max size increased from 10 MB to 25 MB (configurable via `DOCUMENT_STORAGE_MAX_UPLOAD_SIZE`).

Security Fixes

  • GHSA-wrx4-3vff-jm94 – Tag mutation endpoints now correctly scope updates/deletions to the organization.
  • GHSA-5g86-85rp-f9hx – Webhooks no longer follow HTTP redirects, preventing potential TOCTOU DNS rebinding attacks.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track papra

Get notified when new releases ship.

Sign up free

About papra

The minimalistic document archiving platform.

All releases →

Related context

Related tools

Beta — feedback welcome: [email protected]