Pimcore 2026.3.2: three flaws an editor can exploit

Three Pimcore 2026.3.2 flaws are accessible to a PIM editor. How IDOR, Twig sandbox bypass and XSS work, and how to deploy patches within days.

  • What 2026.3.2 fixes
  • Why PIM is a security boundary
  • Why a patch waits six months
  • How to make updates routine

What was released

  1. Pimcore released a patch 2026.3.2 with three security fixes discussed here.

  2. The advisories indicate that each of these three vulnerabilities requires a user already signed into administration or supplying a field value.

  3. For a PIM used by dozens of people, we consider this scenario more likely than an external intrusion.

  4. The release’s practical value depends on one number: how many days it takes to reach your production system.

What 2026.3.2 fixes

  1. ### Someone else’s version on a schedule (GHSA-mfr4-5hr5-jqvg) Pimcore’s scheduler lets editors set a date to publish a particular document or object version.

  2. The task stores a version ID and publishes it at the scheduled time.

  3. According to the advisory, Pimcore did not check that the version belonged to the same element.

  4. This is a classic IDOR, insecure direct object reference: the system retrieves an object using a supplied identifier without checking the user’s permission.

  5. A user allowed to schedule publication for one product could supply another version ID and overwrite an arbitrary element. In a catalogue with hundreds of thousands of SKUs, the substitution might go unnoticed until a customer complaint or marketplace report. ###

  6. A Twig sandbox allowlist bypass (GHSA-f5q9-27jc-vxm9) Twig is Pimcore’s template engine.

  7. Its sandbox restricts the functions, filters and methods available in templates written by non-developers.

  8. The allowlist logic accepted any name beginning with an allowed prefix.

  9. The bypass allowed a template to read and delete arbitrary server files.

  10. The PIM server holds database-password configurations, keys for 1C and marketplace integrations, and catalogue media. ### A link that executes code (GHSA-h78x-47qg-qjmq)

  11. A DataObject Link field returns ready-made HTML through Data\Link::getHtml.

  12. The href attribute and link text were rendered without escaping or sanitisation, so a javascript: link could reach the page unchanged.

  13. This is stored XSS: an attacker enters a value once, and code runs for anyone opening the page, including fully privileged administrators.

  14. Beyond security fixes, #19522 corrects a data-model issue: localised object-brick relations with identical field names were mixed between blocks, silently corrupting translations in multilingual catalogues.

Why PIM is a security boundary

  1. A manufacturer’s or retailer’s PIM stores authoritative product data.

  2. From there, data reaches the website, 1C, marketplace feeds and printed catalogues. Dozens of people use the administration panel: content managers, translators, agencies and sometimes suppliers through a portal.

  3. Two risks therefore join the external attacker: a compromised contractor account and an employee given excessive permissions in the past.

  4. All three vulnerabilities discussed here target this boundary.

  5. A narrowly privileged user can change other people’s data, read server files or attack administrators through a product card.

Analyze data and reference master records in your environment

Why a patch waits six months

  1. Technically, installing the release takes one Composer command.

  2. Yet many companies run year-old Pimcore versions, for an engineering reason.

  3. Over time, a project accumulates its own bundles, overridden classes, custom field types and integrations. Data-model regression tests are often absent.

  4. The team turns every update into a separate manually tested project, then postpones it until a convenient window that never arrives.

  5. The relevant operational TTU is time from a patch release to its use in production.

  6. By publishing the advisories, Pimcore disclosed the vulnerabilities to everyone, including potential attackers. Every unpatched day thereafter leaves an attack opportunity.

How to make updates routine

  1. In KT.Team’s Pimcore projects, a patch reaches production through this process. - An unforked core.

  2. Customisations live in separate bundles and event subscribers, so a core update rarely touches custom code. - Data-model tests.

  3. Automated tests cover classes, object bricks, localisation and relations.

  4. Automated tests catch an issue like #19522 in minutes; manual checking can easily miss it. - Static analysis with a pinned version.

  5. Pimcore pinned Psalm 6.19.1 in CI for repeatable checks. We follow the same discipline in our projects. - Staging with a copy of production data.

  6. We test the update against realistic catalogue volumes before rollout. - Role reviews.

  7. We regularly review who can schedule publications, edit templates and retain contractor access. Product-description agents receive separate, narrowly scoped accounts, and their model requests pass through LLM & Security Gateway. - Integrations through a message bus.

  8. When PIM exchanges data with 1C and marketplaces through Datareon or Apache Kafka, the integration contract is independent of the Pimcore version. An update therefore need not disrupt neighbouring systems. With that pipeline, we target one to two working days from a security release such as 2026.3.2 to production.

Verdict

Three advisories in a patch release are a positive sign: Pimcore’s maintainers investigate vulnerabilities and fix them publicly. The system owner is then responsible, because a disclosed flaw remains dangerous until the update is installed. If a Pimcore update takes a month of approvals, improve operations. Start by checking your current PIM version and estimating how many days deploying 2026.3.2 will take.

Source

Discuss the article: Pimcore 2026.3.2: three flaws…

Enter your email or phone number so we can get back to you.

Send via: