CVE-2013-5583
Description
Cross-site scripting (XSS) vulnerability in libraries/idna_convert/example.php in Joomla! 3.1.5 allows remote attackers to inject arbitrary web script or HTML via the lang parameter.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Reflected XSS in Joomla 3.1.5's example.php allows attackers to inject arbitrary script via the lang parameter.
Vulnerability
The file libraries/idna_convert/example.php in Joomla! 3.1.5 does not sanitize the lang parameter before output. On line 24, the value is echoed into a hidden input field without escaping, and on lines 112 and 119 the $_SERVER['PHP_SELF'] is also unsanitized [3]. This allows reflected cross-site scripting (XSS) attacks. The vulnerable file is present in Joomla 3.1.5 and earlier versions that included it.
Exploitation
An attacker can craft a URL such as http://target/joomla/libraries/idna_convert/example.php?lang="><!-- and trick a user into visiting it. No authentication is required; the attacker only needs to lure a victim to the malicious link [3].
Impact
Successful exploitation allows the attacker to execute arbitrary HTML and JavaScript in the victim's browser within the context of the Joomla site. This can lead to theft of session cookies, access to sensitive information, or further actions such as defacement or redirection [3].
Mitigation
The fix was applied in Joomla's Git repository on September 5, 2013, by removing the vulnerable example.php file entirely [4]. The official Joomla 3.2.0 release (and later) does not include this file. Users running Joomla 3.1.5 or earlier should upgrade to a patched version. No workaround is available other than deleting the file manually [3].
AI Insight generated on May 23, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
joomla/joomla-cmsPackagist | < 3.1.6 | 3.1.6 |
Affected products
3Patches
1c00c033d33d9Remove example file (Fix #1658)
2 files changed · +1 −131
administrator/components/com_admin/script.php+1 −0 modified@@ -604,6 +604,7 @@ public function deleteUnexistingFiles() // Joomla! 3.2 '/administrator/components/com_contact/models/fields/modal/contacts.php', '/administrator/components/com_newsfeeds/models/fields/modal/newsfeeds.php', + '/libraries/idna_convert/example.php', ); // TODO There is an issue while deleting folders using the ftp mode
libraries/idna_convert/example.php+0 −131 removed@@ -1,131 +0,0 @@ -<?php -$encoded = $decoded = $add = ''; -header('Content-Type: text/html; charset=utf-8'); -require_once('idna_convert.class.php'); - -$idn_version = isset($_REQUEST['idn_version']) && $_REQUEST['idn_version'] == 2003 ? 2003 : 2008; -$IDN = new idna_convert(array('idn_version' => $idn_version)); - -$version_select = '<select size="1" name="idn_version"><option value="2003">IDNA 2003</option><option value="2008"'; -if ($idn_version == 2008) { - $version_select .= ' selected="selected"'; -} -$version_select .= '>IDNA 2008</option></select>'; - -if (isset($_REQUEST['encode'])) { - $decoded = isset($_REQUEST['decoded']) ? stripslashes($_REQUEST['decoded']) : ''; - $encoded = $IDN->encode($decoded); -} -if (isset($_REQUEST['decode'])) { - $encoded = isset($_REQUEST['encoded']) ? stripslashes($_REQUEST['encoded']) : ''; - $decoded = $IDN->decode($encoded); -} -$lang = 'en'; -if (isset($_REQUEST['lang'])) { - if ('de' == $_REQUEST['lang'] || 'en' == $_REQUEST['lang']) $lang = $_REQUEST['lang']; - $add .= '<input type="hidden" name="lang" value="'.$_REQUEST['lang'].'" />'."\n"; -} -?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title>phlyLabs Punycode Converter</title> -<meta name="author" content="phlyLabs" /> -<meta http-equiv="content-type" content="text/html; charset=utf-8" /> -<style type="text/css"> -/*<![CDATA[*/ -body { color:black;background:white;font-size:10pt;font-family:Verdana,Helvetica,Sans-Serif; } -body, form { margin:0; } -form { display:inline; } -input { font-size:8pt;font-family:Verdana,Helvetica,Sans-Serif; } -#round { width:730px;padding:10px;background-color:rgb(230,230,240);border:1px solid black;text-align:center;vertical-align:middle;margin:auto;margin-top:50px; } -th { font-size:9pt;font-weight:bold; } -#copy { font-size:8pt;color:rgb(60,60,80); } -#subhead { font-size:8pt; } -#bla { font-size:8pt;text-align:left; } -h5 {margin:0;font-size:11pt;font-weight:bold;} -/*]]>*/ -</style> -</head> -<body> -<div id="round"> - <h5>phlyLabs' pure PHP IDNA Converter</h5><br /> - <span id="subhead"> - See the RFCs <a href="http://faqs.org/rfcs/rfc3490.html" title="IDNA" target="_blank">3490</a>, - <a href="http://faqs.org/rfcs/rfc3491.html" title="Nameprep, a Stringprep profile" target="_blank">3491</a>, - <a href="http://faqs.org/rfcs/rfc3492.html" title="Punycode" target="_blank">3492</a> and - <a href="http://faqs.org/rfcs/rfc3454.html" title="Stringprep" target="_blank">3454</a> as well as - <a href="http://faqs.org/rfcs/rfc5890.html" target="_blank">5890</a>, - <a href="http://faqs.org/rfcs/rfc5891.html" target="_blank">5891</a>, - <a href="http://faqs.org/rfcs/rfc5892.html" target="_blank">5892</a>, - <a href="http://faqs.org/rfcs/rfc5893.html" target="_blank">5893</a> and - <a href="http://faqs.org/rfcs/rfc5894.html" target="_blank">RFC5894</a>.<br /> - </span> - <br /> - <div id="bla"><?php if ($lang == 'de') { ?> - Dieser Konverter erlaubt die Übersetzung von Domainnamen zwischen der Punycode- und der - Unicode-Schreibweise.<br /> - Geben Sie einfach den Domainnamen im entsprechend bezeichneten Feld ein und klicken Sie dann auf den darunter - liegenden Button. Sie können einfache Domainnamen, komplette URLs (wie http://jürgen-müller.de) - oder Emailadressen eingeben.<br /> - <br /> - Stellen Sie aber sicher, dass Ihr Browser den Zeichensatz <strong>UTF-8</strong> unterstützt.<br /> - <br /> - Wenn Sie Interesse an der zugrundeliegenden PHP-Klasse haben, können Sie diese - <a href="http://phlymail.com/de/downloads/idna/download/">hier herunterladen</a>.<br /> - <br /> - Diese Klasse wird ohne Garantie ihrer Funktionstüchtigkeit bereit gestellt. Nutzung auf eigene Gefahr.<br /> - Um sicher zu stellen, dass eine Zeichenkette korrekt umgewandelt wurde, sollten Sie diese immer zurückwandeln - und das Ergebnis mit Ihrer ursprünglichen Eingabe vergleichen.<br /> - <br /> - Fehler und Probleme können Sie gern an <a href="mailto:team@phlymail.de">team@phlymail.de</a> senden.<br /> - <?php } else { ?> - This converter allows you to transfer domain names between the encoded (Punycode) notation - and the decoded (UTF-8) notation.<br /> - Just enter the domain name in the respective field and click on the button right below it to have - it converted. Please note, that you might even enter complete domain names (like jürgen-müller.de) - or a email addresses.<br /> - <br /> - Make sure, that your browser is capable of the <strong>UTF-8</strong> character encoding.<br /> - <br /> - For those of you interested in the PHP source of the underlying class, you might - <a href="http://phlymail.com/en/downloads/idna/download/">download it here</a>.<br /> - <br /> - Please be aware, that this class is provided as is and without any liability. Use at your own risk.<br /> - To ensure, that a certain string has been converted correctly, you should convert it both ways and compare the - results.<br /> - <br /> - Please feel free to report bugs and problems to: <a href="mailto:team@phlymail.com">team@phlymail.com</a>.<br /> - <?php } ?> - <br /> - </div> - <table border="0" cellpadding="2" cellspacing="2" align="center"> - <thead> - <tr> - <th align="left">Original (Unicode)</th> - <th align="right">Punycode (ACE)</th> - </tr> - </thead> - <tbody> - <tr> - <td align="right"> - <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get"> - <input type="text" name="decoded" value="<?php echo htmlentities($decoded, null, 'UTF-8'); ?>" size="48" maxlength="255" /><br /> - <?php echo $version_select; ?> - <input type="submit" name="encode" value="Encode >>" /><?php echo $add; ?> - </form> - </td> - <td align="left"> - <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get"> - <input type="text" name="encoded" value="<?php echo htmlentities($encoded, null, 'UTF-8'); ?>" size="48" maxlength="255" /><br /> - <input type="submit" name="decode" value="<< Decode" /><?php echo $add; ?> - </form> - </td> - </tr> - </tbody> - </table> - <br /> - <span id="copy">Version used: 0.8.0; © 2004-2011 phlyLabs Berlin; part of <a href="http://phlymail.com/">phlyMail</a></span> -</div> -</body> -</html> \ No newline at end of file
Vulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
7- disse.cting.org/2013/08/05/joomla-core-3_1_5_reflected-xss-vulnerability/nvdExploit
- github.com/advisories/GHSA-5xmg-w578-gq5jghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2013-5583ghsaADVISORY
- github.com/joomla/joomla-cms/commit/c00c033d33d901e1ca6be9061a44e55acd041b1fghsaWEB
- web.archive.org/web/20130810034709/http://disse.cting.org/2013/08/05/joomla-core-3_1_5_reflected-xss-vulnerabilityghsaWEB
- web.archive.org/web/20130810103125/http://www.securityfocus.com/bid/61600ghsaWEB
- www.securityfocus.com/bid/61600nvd
News mentions
0No linked articles in our index yet.