CVE-2026-3649
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedThe Katalogportal PDF Sync plugin for WordPress is vulnerable to Missing Authorization in all versions up to and including 1.0.0. The katalogportal_popup_shortcode() function is registered as an AJAX handler via wp_ajax_katalogportal_shortcodePrinter but lacks any capability check (current_user_can()) or nonce verification. This allows any authenticated user, including Subscribers, to call the endpoint and retrieve a list of all synchronized PDF attachments (including those attached to private or draft posts) along with their titles, actual filenames, and the katalogportal_userid configuration value. The WP_Query uses post_status => 'any' which returns attachments regardless of the parent post's visibility status.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceThe Katalogportal PDF Sync WordPress plugin has a missing authorization vulnerability in its AJAX handler (wp_ajax_katalogportal_shortcodePrinter). The katalogportal_popup_shortcode() function lacks both capability checks and nonce verification, allowing any authenticated user—including low-privilege Subscribers—to access the endpoint and retrieve metadata (titles, filenames, katalogportal_userid) for all synchronized PDF attachments, including those attached to private or draft posts.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- Low
- Integrity
- None
- Availability
- None
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Verify Katalogportal PDF Sync plugin is installedCheck WordPress plugins directory for 'katalogportal-pdf-sync' folder, or query the wp_plugins table for the plugin slugAffected if Plugin is present and active in the WordPress installation
-
Confirm installed plugin versionRead the plugin main file header (e.g., katalogportal-pdf-sync.php) and extract the Version field, then compare against any known vulnerable versionsAffected if Version is within a range that lacks the authorization fix
-
Inspect AJAX handler code for capability checksLocate the file containing katalogportal_popup_shortcode() function (typically in the plugin's main PHP file) and search for current_user_can() or similar capability checks before the WP_Query logicAffected if No capability check (current_user_can) is found before the query that fetches attachments
-
Inspect AJAX handler code for nonce verificationSearch the same AJAX handler function for wp_verify_nonce() or check_ajax_referer() callsAffected if No nonce verification is present in the wp_ajax_katalogportal_shortcodePrinter handler
-
Check if low-privilege users can trigger the endpointAs a Subscriber-level user, make a POST request to /wp-admin/admin-ajax.php with action=katalogportal_shortcodePrinter and observe if the response contains metadata for attachmentsAffected if Request succeeds and returns PDF metadata including titles and filenames without access denial
A user is affected if the Katalogportal PDF Sync plugin is installed AND its AJAX handler lacks both capability checks and nonce verification, allowing any logged-in user to retrieve metadata from private or draft post attachments.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scopedAdd a capability check (e.g., current_user_can('edit_posts')) and nonce verification to the AJAX handler, and modify the WP_Query to filter by post_status => 'publish' instead of 'any' to prevent exposure of non-public attachments.
Latest version of Katalogportal PDF Sync plugin beyond 1.0.0
- Check if a newer version of the Katalogportal PDF Sync plugin is available in the WordPress plugin repository
- If a version newer than 1.0.0 is available, navigate to Dashboard > Plugins and update the plugin to the latest version
- Verify the update was successful by confirming the new version number
- Test that the AJAX endpoint wp_ajax_katalogportal_shortcodePrinter now properly enforces authorization (only users with appropriate capabilities should be able to access it)
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation1.0 h
- Implementation2.0 h
- Testing2.0 h
- Review / QA1.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $1,664.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2026-3649 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2026-3649 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data