{"schemaVersion":3,"id":"CVE-2022-2543","aliases":[],"status":"published","duplicateOf":null,"title":null,"description":"The Visual Portfolio, Photo Gallery & Post Grid WordPress plugin before 2.18.0 does not have proper authorisation checks in some of its REST endpoints, allowing unauthenticated users to call them and inject arbitrary CSS in arbitrary saved layouts","dates":{"published":"2022-09-05T12:35:20.000Z","modified":"2024-08-03T00:39:07.976Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":6.1,"severity":"medium","version":"3.1","versionLabel":"v3.1","source":"NVD","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":6.1,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"wordfence","score":5.3,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00601,"percentile":0.48028,"severity":"low","asOf":"2026-10-21T00:00:00.000Z","change":{"pp":0.01399999999999995,"baselineDate":"2026-09-21T00:00:00.000Z","baselineScore":0.00587},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00587,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00587,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00587,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00587,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00587,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00587,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00587,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00587,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00601,"percentile":0.48028}],"last30":[{"date":"2026-09-21T00:00:00.000Z","score":0.00587,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00601,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00601,"percentile":0.48028}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[{"id":"REF_AB5DB3C2A29C969E","name":"Exploit Reference (wpscan.com)","source":"reference","url":"https://wpscan.com/vulnerability/5dc8b671-f2fa-47be-8664-9005c4fdbea8","maturity":"unknown","reliabilityScore":0.2,"verified":false,"type":null,"platforms":[],"requiresAuth":null,"exploitdb":null,"metasploit":null}],"exploitCount":1,"weaknesses":[{"id":"CWE-862","name":"Missing Authorization","description":"The product does not perform an authorization check when an actor attempts to access a resource or perform an action.","type":"weakness","status":"Incomplete","abstraction":"Class","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/862.html"},{"id":"CWE-74","name":"Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')","description":"The product constructs all or part of a command, data structure, or record using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify how it is parsed or interpreted when it is sent to a downstream component.","type":"weakness","status":"Incomplete","abstraction":"Class","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/74.html"}],"affected":[{"vendor":"unknown","product":"visual portfolio, photo gallery & post grid","name":"Visual Portfolio, Photo Gallery & Post Grid","label":"visual portfolio, photo gallery & post grid","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 2.18.0, < 2.18.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 2.18.0, < 2.18.0","eol":null,"hubHref":"/vendor/unknown/visual_portfolio_photo_gallery__post_grid"},{"vendor":"visualportfolio","product":"visual_portfolio\\,_photo_gallery_\\&_post_grid","name":"visual portfolio\\, photo gallery \\& post grid","label":"visual_portfolio\\,_photo_gallery_\\&_post_grid","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 2.18.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.18.0","eol":null,"hubHref":"/vendor/visualportfolio/visual_portfolio_photo_gallery__post_grid"},{"vendor":"wordpress","product":"visual-portfolio","name":"Gallery by Visual Portfolio","label":"visual-portfolio","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≤ 2.17.1 (fixed in 2.18.0)","noFixRecorded":false,"fixedIn":"2.18.0"}],"versionsText":"≤ 2.17.1 (fixed in 2.18.0)","eol":null,"hubHref":null}],"affectedCount":3,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://wpscan.com/vulnerability/5dc8b671-f2fa-47be-8664-9005c4fdbea8","label":"wpscan.com/vulnerability/5dc8b671-f2fa-47be-8664-9005c4fdbea8","hostname":"wpscan.com","tags":["X Refsource MISC","Exploit","Third Party Advisory"]},{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/e20082a0-dca6-4a26-919f-d59752dfbe90","label":"www.wordfence.com/threat-intel/vulnerabilities/id/e20082a0-dca6-4a26-919f-d59752dfbe90","hostname":"www.wordfence.com","tags":["Vendor Advisory"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2022-09-05T12:35:20.000Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2024-08-03T00:39:07.976Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":35,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-22T09:36:38.415Z","stale":false,"partial":false}}