# MLS Import <= 7.2.6 - Authenticated (Contributor+) Stored Cross-Site Scripting via Property JSON-LD Schema

- **ID:** WPSEC-2026-2777
- **Plugin:** MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings (`mlsimport`), https://wordpress.org/plugins/mlsimport/
- **Affected versions:** from 7.0.4 before 7.2.7
- **Fixed in:** 7.2.7 (Update to 7.2.7 or later.)
- **Severity:** Medium 6.4 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N)
- **Weakness:** CWE-79
- **Usage among sites WPSec scans:** plugin Low, affected versions Low (as of 2026-11-10)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/mlsimport
- **Fix released:** 2026-11-09
- **Published:** 2026-11-10
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2777/

## Description

The MLSImport plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the single-property JSON-LD schema in all versions up to, and including, 7.2.6, due to listing values (title, excerpt, address meta such as StreetNumber, StreetName, UnitNumber and UnparsedAddress, city, state, postal code and listing agent name) being printed inside an inline <script type="application/ld+json"> block with wp_json_encode() and JSON_UNESCAPED_SLASHES, without escaping '<' and '>'. This makes it possible for authenticated attackers, with contributor-level access and above, to set custom fields on an MLS Property post that close the script block and inject arbitrary web scripts that run when a user views or previews the property page. The same output also runs script supplied through listing data in the connected MLS feed.

## References

- https://wpsec.com/vuln/WPSEC-2026-2777/
- https://plugins.svn.wordpress.org/mlsimport/tags/7.2.7/
- https://wordpress.org/plugins/mlsimport/

Source: WPSec, https://wpsec.com/vuln/WPSEC-2026-2777/

License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Free to use, share and adapt, also commercially, if you credit WPSec and link to this advisory.
