This release includes 2 security fixes for security teams reviewing exposed deployments.
Topics
Affected surfaces
Summary
AI summaryBroad 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
| Type | Severity | Summary | CVE |
|---|---|---|---|
| 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
47d44e0Thanks @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
e2e7fd4Thanks @CorentinTh! - Limited search query to 1024 characters -
#1099
086dccbThanks @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
93c369dThanks @CorentinTh! - Html-ish characters in email templates are now escaped instead of sanitized-out -
#1067
79d4cacThanks @CorentinTh! - Increased default max file size from 10MB to 25MB (can still be customized usingDOCUMENT_STORAGE_MAX_UPLOAD_SIZE, disable by setting it to 0). -
#1010
927c7d6Thanks @CorentinTh! - Removed logging of a polluting empty error cause (with stack trace) when an error is thrown without a cause. -
#1082
e8d19afThanks @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
47d44e0Thanks @CorentinTh! - Tag deletion endpoint now returns a204 No Contentstatus code instead of200 OKwith an empty JSON object, and a404 Not Foundstatus code is returned when trying to delete a tag that does not exists for the organization. -
#1015
5bdf0daThanks @JohnCuba! - Synchronized the document pagination of the home page in query params to permit sharing and navigation. -
#1096
2bb75ceThanks @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
c5ccac5Thanks @CorentinTh! - Added content preview for yaml files -
#1027
b154d2fThanks @CorentinTh! - Removed weird shadows on ui components in light mode -
#1091
4ab0f32Thanks @CorentinTh! - The documents page content now uses the whole width of the page -
#1082
e8d19afThanks @CorentinTh! - Added a batch document tag management API endpoint. -
#1097
928ffc3Thanks @CorentinTh! - Switched docker image pnpm installation from corepack to npm global installation, as Node.js 26 image no longer ships corepack. -
#1090
5ea8ca3Thanks @CorentinTh! - Added sorting option in the documents list, allowing to sort documents by name, or creation date, in ascending or descending order. -
#1098
7acca43Thanks @CorentinTh! - Updated pnpm to v11 -
#1020
015bb53Thanks @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
9c6985bThanks @CorentinTh! - When reopening the quick search modal with existing query, the input content is automatically selected to allow easy replacement or editing. -
#1033
5d55e41Thanks @CorentinTh! - Changed the server endpoint validation library fromzodtovalibot, and improved some validation schemas in the process. -
#1097
928ffc3Thanks @CorentinTh! - Updated to Node.js 26 -
#1016
07d7109Thanks @JohnCuba! - Removed native clear button of search bar in safari. -
#1072
71d093fThanks @mvlanga! - Added a download file option in document list action menu -
#1089
aef3ef2Thanks @CorentinTh! - AddedsortFieldandsortOrderquery parameters to the document list/search endpoint (GET /api/organizations/:organizationId/documents), allowing documents to be sorted bycreatedAt,updatedAt,name, ordocumentDatein ascending or descending order. -
#1074
e2e7fd4Thanks @CorentinTh! - Add batch document trash API endpoint. -
#1099
086dccbThanks @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
ad5e42dThanks @JohnCuba! - Increased the sidebar collapsing breakpoint to improve the UX on tablets and small laptops. -
#1016
07d7109Thanks @JohnCuba! - Removed useless close button in the small-screen sidebar sheet. -
#1003
ad5e42dThanks @JohnCuba! - Prevented the users and organizations tables from forcing horizontal scrolling in the admin panels. -
#1021
133d235Thanks @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
Beta — feedback welcome: [email protected]