<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Thu, 08 Oct 2026 04:11:03 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-52769</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-52769</link>
      <description>&lt;p&gt;YesWiki is a wiki system written in PHP. From version 4.6.2 to before version 4.6.6, the POST /api/forms/{formId}/actor/inbox route - exposed publicly with acl:&amp;#34;public&amp;#34; - accepts an HTTP Signature header whose keyId parameter is a URL. HttpSignatureService::verifySignature() parses the header and immediately makes a server-side HTTP GET to that URL, before any cryptographic verification or URL validation. An unauthenticated remote attacker can therefore make YesWiki issue arbitrary outbound HTTP requests to any host the server can reach - internal services, cloud-metadata endpoints (169.254.169.254), intranet-only admin panels, etc. - and read enough back via timing and error-message oracles to scan ports, enumerate services, and (on a real cloud instance) reach IAM metadata. The only deployment-side precondition is that ActivityPub be enabled on at least one Bazar form. This issue has been patched in version 4.6.6.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;YesWiki is a wiki system written in PHP. From version 4.6.2 to before version 4.6.6, the POST /api/forms/{formId}/actor/inbox route - exposed publicly with acl:&amp;#34;public&amp;#34; - accepts an HTTP Signature header whose keyId parameter is a URL. HttpSignatureService::verifySignature() parses the header and immediately makes a server-side HTTP GET to that URL, before any cryptographic verification or URL validation. An unauthenticated remote attacker can therefore make YesWiki issue arbitrary outbound HTTP requests to any host the server can reach - internal services, cloud-metadata endpoints (169.254.169.254), intranet-only admin panels, etc. - and read enough back via timing and error-message oracles to scan ports, enumerate services, and (on a real cloud instance) reach IAM metadata. The only deployment-side precondition is that ActivityPub be enabled on at least one Bazar form. This issue has been patched in version 4.6.6.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-52769</guid>
    </item>
    <item>
      <title>GHSA-vw42-752g-5mrp — YesWiki has Unauthenticated Server-Side Request Forgery via ActivityPub `Signature.keyId`</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-vw42-752g-5mrp</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: yeswiki/yeswiki&lt;/p&gt;
&lt;p&gt;## Summary
The `POST /api/forms/{formId}/actor/inbox` route - exposed publicly with `acl:&amp;#34;public&amp;#34;` - accepts an HTTP `Signature` header whose `keyId` parameter is a URL. `HttpSignatureService::verifySignature()` parses the header and **immediately makes a server-side HTTP GET** to that URL, **before** any cryptographic verification or URL validation. An unauthenticated remote attacker can therefore make YesWiki issue arbitrary outbound HTTP requests to any host the server can reach - internal services, cloud-metadata endpoints (`169.254.169.254`), intranet-only admin panels, etc. - and read enough back via timing and error-message oracles to scan ports, enumerate services, and (on a real cloud instance) reach IAM metadata.&lt;/p&gt;
&lt;p&gt;The only deployment-side precondition is that **ActivityPub be enabled on at least one Bazar form** (`bn_activitypub_enable = &amp;#39;1&amp;#39;`).&lt;/p&gt;
&lt;p&gt;## Details
### Affected component&lt;/p&gt;
&lt;p&gt;* **File:** `tools/bazar/services/HttpSignatureService.php`
* **Method:** `HttpSignatureService::verifySignature(Request $request)`
* **Sink:** line **96**
* **Route:** `tools/bazar/controllers/ApiController.php` line **125** — `@Route(&amp;#34;/api/forms/{formId}/actor/inbox&amp;#34;, methods={&amp;#34;POST&amp;#34;}, options={&amp;#34;acl&amp;#34;:{&amp;#34;public&amp;#34;}})`&lt;/p&gt;
&lt;p&gt;```php
// tools/bazar/services/HttpSignatureService.php  (v4.6.5 = origin/doryphore-dev HEAD,
// lines 83–100)
public function verifySignature(Request $request) {
    if (!$request-&amp;gt;headers-&amp;gt;has(&amp;#39;Signature&amp;#39;)) {
        throw new Exception(&amp;#39;No signature&amp;#39;);
    }&lt;/p&gt;
&lt;p&gt;$sigConf =…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: yeswiki/yeswiki&lt;/p&gt;
&lt;p&gt;## Summary
The `POST /api/forms/{formId}/actor/inbox` route - exposed publicly with `acl:&amp;#34;public&amp;#34;` - accepts an HTTP `Signature` header whose `keyId` parameter is a URL. `HttpSignatureService::verifySignature()` parses the header and **immediately makes a server-side HTTP GET** to that URL, **before** any cryptographic verification or URL validation. An unauthenticated remote attacker can therefore make YesWiki issue arbitrary outbound HTTP requests to any host the server can reach - internal services, cloud-metadata endpoints (`169.254.169.254`), intranet-only admin panels, etc. - and read enough back via timing and error-message oracles to scan ports, enumerate services, and (on a real cloud instance) reach IAM metadata.&lt;/p&gt;
&lt;p&gt;The only deployment-side precondition is that **ActivityPub be enabled on at least one Bazar form** (`bn_activitypub_enable = &amp;#39;1&amp;#39;`).&lt;/p&gt;
&lt;p&gt;## Details
### Affected component&lt;/p&gt;
&lt;p&gt;* **File:** `tools/bazar/services/HttpSignatureService.php`
* **Method:** `HttpSignatureService::verifySignature(Request $request)`
* **Sink:** line **96**
* **Route:** `tools/bazar/controllers/ApiController.php` line **125** — `@Route(&amp;#34;/api/forms/{formId}/actor/inbox&amp;#34;, methods={&amp;#34;POST&amp;#34;}, options={&amp;#34;acl&amp;#34;:{&amp;#34;public&amp;#34;}})`&lt;/p&gt;
&lt;p&gt;```php
// tools/bazar/services/HttpSignatureService.php  (v4.6.5 = origin/doryphore-dev HEAD,
// lines 83–100)
public function verifySignature(Request $request) {
    if (!$request-&amp;gt;headers-&amp;gt;has(&amp;#39;Signature&amp;#39;)) {
        throw new Exception(&amp;#39;No signature&amp;#39;);
    }&lt;/p&gt;
&lt;p&gt;$sigConf =…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-vw42-752g-5mrp</guid>
    </item>
  </channel>
</rss>
