Every CVE Search/ Get API key

CVE-2026-52762

YesWiki: Authenticated (Admin) Server-Side Template Injection to Remote Code Execution via Bazar Semantic Templates

7.1 HighFix available

YesWiki is a wiki system written in PHP. Prior to version 4.6.6, YesWiki Bazar contains a stored Server-Side Template Injection (SSTI) vulnerability in the semantic template feature that can be escalated to confirmed Remote Code Execution (RCE). An authenticated administrator can place arbitrary Twig expressions into the Semantic template (Twig) field (bn_sem_template), and that content is later executed server-side when public semantic endpoints are requested. This issue has been patched in version 4.6.6.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
High
Availability
None

Exploit likelihood

0.78%Up 0.7 points since Jun 14, 2026
90%50%10%1%

What each source reports

CVE List Score used 7.1

YesWiki: Authenticated (Admin) Server-Side Template Injection to Remote Code Execution via Bazar Semantic Templates

YesWiki is a wiki system written in PHP. Prior to version 4.6.6, YesWiki Bazar contains a stored Server-Side Template Injection (SSTI) vulnerability in the semantic template feature that can be escalated to confirmed Remote Code Execution (RCE). An authenticated administrator can place arbitrary Twig expressions into the Semantic template (Twig) field (bn_sem_template), and that content is later executed server-side when public semantic endpoints are requested. This issue has been patched in version 4.6.6.

Record
CVE-2026-52762
CVSS 4.0
7.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-1336
Updated
2026-11-02
EUVDEUVD-2026-71797 7.1

YesWiki is a wiki system written in PHP. Prior to version 4.6.6, YesWiki Bazar contains a stored Server-Side Template Injection (SSTI) vulnerability in the semantic template feature that can be escalated to confirmed Remote Code Execution (RCE). An authenticated administrator can place arbitrary Twig expressions into the Semantic template (Twig) field (bn_sem_template), and that content is later executed server-side when public semantic endpoints are requested. This issue has been patched in version 4.6.6.

Record
EUVD-2026-71797
CVSS 4.0
7.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-65p8-9433-jpcp 7.1

YesWiki: Authenticated (Admin) Server-Side Template Injection to Remote Code Execution via Bazar Semantic Templates

Summary

YesWiki Bazar contains a stored Server-Side Template Injection (SSTI) vulnerability in the semantic template feature that can be escalated to confirmed Remote Code Execution (RCE). An authenticated administrator can place arbitrary Twig expressions into the Semantic template (Twig) field (bn_sem_template), and that content is later executed server-side when public semantic endpoints are requested.

This was first confirmed through a harmless proof payload where {{ 7 * 7 }} was rendered as 49 through the public JSON-LD endpoint. The finding was then further validated locally by storing a Twig payload that invoked a system-level callable, resulting in command execution and an interactive shell on the test machine.

Because the payload is stored in the form configuration and later triggered through a public endpoint, this issue is both persistent and remotely triggerable after an administrator plants the malicious template.

Details

The vulnerable behavior is in the Bazar semantic rendering flow.

The administrator-editable fields:

  • bn_sem_template
  • bn_sem_reverse_template

allow Twig template content to be stored inside a form definition. That content is later rendered by the backend semantic transformer through TemplateEngine::renderFromStringNoEscape(), which passes the user-controlled string into Twig for execution.

Relevant sink:

$json = $this->templateEngine->renderFromStringNoEscape($form['bn_sem_template'], $data);

The rendering helper evaluates the supplied string as a live Twig template:

public function renderFromStringNoEscape(string $templateString, array $data = []): string
{
    $wrapped = '{% autoescape false %}' . $templateString . '{% endautoescape %}';
    return $this->twig->createTemplate($wrapped)->render($data);
}

This is unsafe because administrator-controlled semantic template text is executed as server-side Twig code rather than treated as inert data. In the validated environment, Twig expressions were first confirmed to execute through a harmless arithmetic payload and were then escalated to operating-system-level command execution by invoking a callable through Twig.

The public trigger path used during validation was:

GET /api/forms/2/entries/json-ld

The attack chain is:

  1. An administrator stores malicious Twig code in the semantic template field.
  2. YesWiki saves that payload in the form configuration.
  3. A later request to the public semantic endpoint causes the backend to render and execute the stored Twig.
  4. Because the Twig environment is not adequately constrained, the stored payload can escalate from template execution to system command execution.

PoC

The following steps reproduce the issue on the locally validated YesWiki instance.

Stage 1: Confirm Server-Side Template Execution

  1. Log in to YesWiki as an administrator.
  2. Open Bazar form management.
  3. Edit form ID 2 (Agenda in the validated instance).
  4. Locate the field labeled Semantic template (Twig).
  5. Replace its content with the following harmless payload:
{"proof":"{{ 7 * 7 }}"}
  1. Save the form.
  2. Trigger the public semantic endpoint:
curl -s 'https://target.example/?api/forms/2/entries/json-ld'
  1. Observe that the server returns evaluated Twig output instead of the literal string {{ 7 * 7 }}.

Confirmed response:

{"@context":null,"@id":"https:\/\/target.example\/?api\/fiche\/2","@type":["ldp:Container","ldp:BasicContainer"],"dcterms:title":"Agenda","ldp:contains":[{"proof":"49","id":"https:\/\/target.example\/?TesT2"},{"proof":"49","id":"https:\/\/target.example\/?Bordeaux"}]}

Key execution proof:

"proof":"49"

Stage 2: Confirm Remote Code Execution

After confirming SSTI with the harmless payload above, a second locally controlled payload was stored in the same semantic template field to test whether Twig execution could be escalated to command execution. When the public…

Record
GHSA-65p8-9433-jpcp
CVSS 4.0
7.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-1336
Updated
2026-11-02
NVD 7.1

YesWiki is a wiki system written in PHP. Prior to version 4.6.6, YesWiki Bazar contains a stored Server-Side Template Injection (SSTI) vulnerability in the semantic template feature that can be escalated to confirmed Remote Code Execution (RCE). An authenticated administrator can place arbitrary Twig expressions into the Semantic template (Twig) field (bn_sem_template), and that content is later executed server-side when public semantic endpoints are requested. This issue has been patched in version 4.6.6.

Record
CVE-2026-52762
CVSS 4.0
7.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Weakness
CWE-1336
Updated
2026-11-02
OSV 7.1

YesWiki: Authenticated (Admin) Server-Side Template Injection to Remote Code Execution via Bazar Semantic Templates

YesWiki is a wiki system written in PHP. Prior to version 4.6.6, YesWiki Bazar contains a stored Server-Side Template Injection (SSTI) vulnerability in the semantic template feature that can be escalated to confirmed Remote Code Execution (RCE). An authenticated administrator can place arbitrary Twig expressions into the Semantic template (Twig) field (bn_sem_template), and that content is later executed server-side when public semantic endpoints are requested. This issue has been patched in version 4.6.6.

Record
CVE-2026-52762
CVSS 4.0
7.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-1336
Updated
2026-11-02
OSVGHSA-65p8-9433-jpcp 7.1

YesWiki: Authenticated (Admin) Server-Side Template Injection to Remote Code Execution via Bazar Semantic Templates

Summary

YesWiki Bazar contains a stored Server-Side Template Injection (SSTI) vulnerability in the semantic template feature that can be escalated to confirmed Remote Code Execution (RCE). An authenticated administrator can place arbitrary Twig expressions into the Semantic template (Twig) field (bn_sem_template), and that content is later executed server-side when public semantic endpoints are requested.

This was first confirmed through a harmless proof payload where {{ 7 * 7 }} was rendered as 49 through the public JSON-LD endpoint. The finding was then further validated locally by storing a Twig payload that invoked a system-level callable, resulting in command execution and an interactive shell on the test machine.

Because the payload is stored in the form configuration and later triggered through a public endpoint, this issue is both persistent and remotely triggerable after an administrator plants the malicious template.

Details

The vulnerable behavior is in the Bazar semantic rendering flow.

The administrator-editable fields:

  • bn_sem_template
  • bn_sem_reverse_template

allow Twig template content to be stored inside a form definition. That content is later rendered by the backend semantic transformer through TemplateEngine::renderFromStringNoEscape(), which passes the user-controlled string into Twig for execution.

Relevant sink:

$json = $this->templateEngine->renderFromStringNoEscape($form['bn_sem_template'], $data);

The rendering helper evaluates the supplied string as a live Twig template:

public function renderFromStringNoEscape(string $templateString, array $data = []): string
{
    $wrapped = '{% autoescape false %}' . $templateString . '{% endautoescape %}';
    return $this->twig->createTemplate($wrapped)->render($data);
}

This is unsafe because administrator-controlled semantic template text is executed as server-side Twig code rather than treated as inert data. In the validated environment, Twig expressions were first confirmed to execute through a harmless arithmetic payload and were then escalated to operating-system-level command execution by invoking a callable through Twig.

The public trigger path used during validation was:

GET /api/forms/2/entries/json-ld

The attack chain is:

  1. An administrator stores malicious Twig code in the semantic template field.
  2. YesWiki saves that payload in the form configuration.
  3. A later request to the public semantic endpoint causes the backend to render and execute the stored Twig.
  4. Because the Twig environment is not adequately constrained, the stored payload can escalate from template execution to system command execution.

PoC

The following steps reproduce the issue on the locally validated YesWiki instance.

Stage 1: Confirm Server-Side Template Execution

  1. Log in to YesWiki as an administrator.
  2. Open Bazar form management.
  3. Edit form ID 2 (Agenda in the validated instance).
  4. Locate the field labeled Semantic template (Twig).
  5. Replace its content with the following harmless payload:
{"proof":"{{ 7 * 7 }}"}
  1. Save the form.
  2. Trigger the public semantic endpoint:
curl -s 'https://target.example/?api/forms/2/entries/json-ld'
  1. Observe that the server returns evaluated Twig output instead of the literal string {{ 7 * 7 }}.

Confirmed response:

{"@context":null,"@id":"https:\/\/target.example\/?api\/fiche\/2","@type":["ldp:Container","ldp:BasicContainer"],"dcterms:title":"Agenda","ldp:contains":[{"proof":"49","id":"https:\/\/target.example\/?TesT2"},{"proof":"49","id":"https:\/\/target.example\/?Bordeaux"}]}

Key execution proof:

"proof":"49"

Stage 2: Confirm Remote Code Execution

After confirming SSTI with the harmless payload above, a second locally controlled payload was stored in the same semantic template field to test whether Twig execution could be escalated to command execution. When the public…

Record
GHSA-65p8-9433-jpcp
CVSS 4.0
7.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-1336
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
yeswiki/yeswiki
Packagist
before 4.6.6
4.6.6
yeswiki/yeswiki
Packagist
before 4.6.6, plus listed versions
4.2.3v4.1.0v4.1.1v4.1.2v4.1.3
Show 26 moreShow less
v4.1.4v4.1.5v4.2.0v4.2.1v4.2.2v4.2.4v4.3v4.3.1v4.4.0v4.4.1v4.4.2v4.4.3v4.4.4v4.4.5v4.5.0v4.5.1v4.5.2v4.5.3v4.5.4v4.5.5v4.6.0v4.6.1v4.6.2v4.6.3v4.6.4v4.6.5
4.6.6

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-52762 is a high vulnerability (CVSS 7.1) in Yeswiki, published July 9, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.78%, the 56th percentile. Fixed in yeswiki/yeswiki 4.6.6.

References

This page doesn't list everything

Left out here: the rest of 2 source descriptions. The JSON record has them.

MoveEnter Open