Where
-Infinity
0

Vendor Risk Score

See how prosody compares to other vendors in security performance

View Risk Score →
Severity
7.5
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

An issue was discovered in Prosody before 0.12.6 and 1.0.0 through 13.0.0 before 13.0.5. A Denial of Service can occur via memory exhaustion caused by XML parsing resource amplification from unauthenticated connections.

First published (updated )
Severity
7.5
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

An issue was discovered in Prosody before 0.12.6 and 1.0.0 through 13.0.0 before 13.0.5. A Denial of Service can occur via memory exhaustion caused by memory leaks from unauthenticated connections.

First published (updated )
Severity
6.5
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L

An issue was discovered in Prosody before 0.12.6 and 1.0.0 through 13.0.0 before 13.0.5, when modproxy65 is enabled. Because modproxy65 mishandles access control in the activation scenario, relaying of unauthenticated traffic can occur.

First published (updated )
Severity
6.5
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L

An issue was discovered in Prosody before 0.12.6 and 1.0.0 through 13.0.0 before 13.0.5, when modproxy65 is enabled. Because modproxy65 mishandles access control in a paused scenario, relaying of unauthenticated traffic can occur.

First published (updated )

Project : Prosody XMPP server

URL : https://prosody.im/

Date : 2026-04-29

This advisory details two security vulnerabilities discovered in the Prosody.im XMPP server software. Fixes are available in Prosody 13.0.5. Deployments still using the Prosody 0.12 series can upgrade to 0.12.6.

In this advisory:

- Denial of Service via Memory Exhaustion - Unauthenticated Use of SOCKS5 Proxy (modproxy65)

Full details of the vulnerabilities are below.

The recommended advice is for all Prosody users to:

- Upgrade to 13.0.5 - For extra protection, review system firewall limits (see below)

This advisory can be found online at:

- https://prosody.im/security/advisory735dd9d3/ (HTML) - https://prosody.im/security/advisory735dd9d3.txt (text)

Denial of Service via Memory Exhaustion -------------------------------------------------------

CVEs : We have requested 2 CVEs

CVSS : 7.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)

CWEs : CWE-405, CWE-770, CWE-772

Affected versions : All versions prior to 13.0.5

Fixed versions : 0.12.6, 13.0.5

References

- https://blog.unionium.org/ARTICLES/1.HTM (third-party, see below)

Note: We have provided the original reporter's blog post as a reference, as it contains the original report and proof-of-concept exploit code. However, the Prosody developers do not recommend the analysis and mitigations provided in that post to Prosody operators.

Description

Traffic patterns were discovered which can cause Prosody to consume excessive amounts of memory with much smaller amounts of incoming traffic. This traffic can be sent by unauthenticated connections.

Prosody has per-connection rate limits. However, the protection provided by rate limits was reduced due to amplification of memory usage compared to the data transmitted by the attacker.

Further, Prosody does not enforce limits on the total number of connections, allowing an attacker to increase the impact by using multiple concurrent connections.

Finally, the attack revealed per-connection resource leaks, where a connection could continue to consume resources in Prosody even after the stream is finished.

Affected configurations

All Prosody versions prior to 13.0.5 are believed to be affected.

Further, the issues described in this advisory are closely related to libexpat CVE-2025-59375. Fully protecting Prosody deployments requires that LuaExpat (a required dependency of Prosody) is linked against libexpat 2.7.2 or later (the version of expat in use can be discovered in the output of 'prosodyctl about').

Mitigation

Operators of Prosody servers are encouraged to utilize their system's firewall to limit the rate and total number of connections to their service.

For example, 'ufw' is a widely available firewall tool which can limit excessive incoming connection requests. To apply this limiting to the standard XMPP ports, you would run:

ufw limit 5222 ufw limit 5269

iptables and nftables also have 'connlimit' features to limit the total number of connections per IP address. Refer to the documentation of your firewall for correct configuration.

It is not recommended to drastically lower Prosody's per-connection bandwidth rate limits as described in the blog post by the original reporter. Lowering rate limits slows down processing of an attacker's connections, causing them to remain active for longer. This can negatively impact Prosody's resource usage. Prosody's default rate limits are generally considered sufficient.

Fixes

The attack revealed a number of areas where the resource usage of connections could exceed expected and desired levels. Multiple fixes were applied.

Resource amplification (first CVE):

- Lower stanza size limits have been introduced for unauthenticated streams.\ Commits: 8a4417d32b0f, 166ac7d65cb6, a4327478678f - Limits have been placed on the complexity of XML stanzas, to disallow stanzas that will consume significantly larger amounts of memory than their serialized form.\ Commits: 6c7549964d4d, 1e005ba71f0d

Memory leaks (second CVE):

- Four memory leaks have been fixed, two could be triggered by unauthenticated connections, and two by authenticated users.\ Commits: 836a70deb3c9 (unauthenticated), e27d94d8f505 (unauthenticated), 041c7ff18f76 (authenticated), 374b72785488 (authenticated)

Other:

- Code to configure per-IP connection limits has been introduced, however this is currently in an experimental status, and it is preferable to utilize a system firewall to enforce such limits if possible. Refer to the documentation for your system firewall.

Attribution

The resource amplification attack was discovered and disclosed to the Prosody team by Ley <unionium.org> in advance of their public blog post.

The memory leaks were discovered by the Prosody team during their research into this issue.

Unauthenticated Use of SOCKS5 Proxy (modproxy65) -------------------------------------------------------

CVEs : We have requested 1 CVE

CVSS : 5.3 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L)

CWEs : CWE-863

Affected versions : All versions prior to 0.12.6 and 13.0.5

Fixed versions : 0.12.6, 13.0.5

Description

It was discovered that modproxy65's access control was broken and incomplete due to two bugs.

Firstly, due to changes in our default network backend, a connection that modproxy65 believed to be "paused" would actually be able to send data through the proxy before authorization.

Secondly, modproxy65 only checked the access control rules during the discoverability stage of the protocol, but not during the activation stage. Any entity able to guess the domain and port of the proxy (which defaults to port 5000) could skip the discoverability stage and would be able to use it.

Limitations

modproxy65 is designed to facilitate file transfers and other binary streams between two XMPP entities. It is not a generic SOCKS5 proxy, and this limits the scope of potential abuse.

For example, modproxy65 does not make outbound connections, and therefore cannot be abused for forward proxying of an attacker's connections to arbitrary endpoints. It requires both peers to make a connection to the proxy and perform a SOCKS5 handshake.

Affected configurations

All deployments with modproxy65 enabled are affected. modproxy65 is not enabled in the default configuration.

Mitigation

modproxy65 can be disabled, however this may have a negative impact on some kinds of file transfers.

Fixes

Fixes were made in two commits:

- f34ad235cf3b - 4bbb17445ed9

Attribution

The issue with unpausing connections was discovered and disclosed by Max Hearnden <https://github.com/MaxHearnden/>.

The missing authorization was discovered during review of the code by a Prosody team member.

Severity
7.5
XEE, Input Validation
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

It was discovered that an internal Prosody library to load XML based on libexpat does not properly restrict the XML features allowed in parsed XML data.

Reference:

https://prosody.im/security/advisory20220113.txt

1 / 2
Source: Red Hat
First published (updated )
Severity
7.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

muc.lib.lua in Prosody 0.11.0 through 0.11.9 allows remote attackers to obtain sensitive information (list of admins, members, owners, and banned entities of a Multi-User chat room) in some common configurations.

First published (updated )
Severity
5.9
Race Condition
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N

An issue was discovered in Prosody before 0.11.9. It does not use a constant-time algorithm for comparing certain secret strings when running under Lua 5.2 or later. This can potentially be used in a timing attack to reveal the contents of secret strings to an attacker.

First published (updated )
Severity
7.8
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Prosody before 0.11.9 allows Uncontrolled CPU Consumption via a flood of SSL/TLS renegotiation requests.

First published (updated )
Severity
7.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

An issue was discovered in Prosody before 0.11.9. The undocumented dialbackwithoutdialback option in moddialback enables an experimental feature for server-to-server authentication. It does not correctly authenticate remote server certificates, allowing a remote server to impersonate another server (when this option is enabled).

First published (updated )
Severity
7.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

An issue was discovered in Prosody before 0.11.9. Default settings are susceptible to remote unauthenticated denial-of-service (DoS) attacks via memory exhaustion when running under Lua 5.2 or Lua 5.3.

First published (updated )
Severity
5.3
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

An issue was discovered in Prosody before 0.11.9. The proxy65 component allows open access by default, even if neither of the users has an XMPP account on the local server, allowing unrestricted use of the server's bandwidth.

First published (updated )
Severity
9.8
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

The modauthldap and modauthldap2 Community Modules through 2020-01-27 for Prosody incompletely verify the XMPP address passed to the isadmin() function. This grants remote entities admin-only functionality if their username matches the username of a local admin.

First published (updated )
Severity
8.8
CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

prosody before versions 0.10.2, 0.9.14 is vulnerable to an Authentication Bypass. Prosody did not verify that the virtual host associated with a user session remained the same across stream restarts. A user may authenticate to XMPP host A and migrate their authenticated session to XMPP host B of the same Prosody instance.

First published (updated )
Severity
7.5
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Prosody before 0.10.0 allows remote attackers to cause a denial of service (application crash), related to an incompatibility with certain versions of the LuaSocket library, such as the lua-socket package from Debian stretch. The attacker needs to trigger a stream error. A crash can be observed in, for example, the c2s module.

First published (updated )
Severity
5.3
Input Validation
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

The generatedialback function in the moddialback module in Prosody before 0.9.10 does not properly separate fields when generating dialback keys, which allows remote attackers to spoof XMPP network domains via a crafted stream id and domain name that is included in the target domain as a suffix.

First published (updated )
Severity
5.9
Path Traversal
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N

Directory traversal vulnerability in the HTTP file-serving module (modhttpfiles) in Prosody 0.9.x before 0.9.9 allows remote attackers to read arbitrary files via a .. (dot dot) in an unspecified path.

First published (updated )
Severity
7.5
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

The moddialback module in Prosody before 0.9.9 does not properly generate random values for the secret token for server-to-server dialback authentication, which makes it easier for attackers to spoof servers via a brute force attack.

First published (updated )
Severity
7.8
Input Validation
AV:N/AC:L/Au:N/C:N/I:N/A:C

plugins/modcompression.lua in (1) Prosody before 0.9.4 and (2) Lightwitch Metronome through 3.4 negotiates stream compression while a session is unauthenticated, which allows remote attackers to cause a denial of service (resource consumption) via compressed XML elements in an XMPP stream, aka an "xmppbomb" attack.

First published (updated )
Severity
7.8
AV:N/AC:L/Au:N/C:N/I:N/A:C

Prosody before 0.9.4 does not properly restrict the processing of compressed XML elements, which allows remote attackers to cause a denial of service (resource consumption) via a crafted XMPP stream, aka an "xmppbomb" attack, related to core/portmanager.lua and util/xmppstream.lua.

First published (updated )
Severity
5
AV:N/AC:L/Au:N/C:N/I:N/A:P

Prosody before 0.8.1 does not properly detect recursion during entity expansion, which allows remote attackers to cause a denial of service (memory and CPU consumption) via a crafted XML document containing a large number of nested entity references, a similar issue to CVE-2003-1564.

First published (updated )
Severity
5
AV:N/AC:L/Au:N/C:N/I:N/A:P

The json.decode function in util/json.lua in Prosody 0.8.x before 0.8.1 might allow remote attackers to cause a denial of service (infinite loop) via invalid JSON data, as demonstrated by truncated data.

First published (updated )
Severity
4.3
AV:N/AC:M/Au:N/C:N/I:N/A:P

Prosody 0.8.x before 0.8.1, when MySQL is used, assigns an incorrect data type to the value column in certain tables, which might allow remote attackers to cause a denial of service (data truncation) by sending a large amount of data.

First published (updated )

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203