diff --git a/advisories/github-reviewed/2022/05/GHSA-fgj8-93xx-f6g6/GHSA-fgj8-93xx-f6g6.json b/advisories/github-reviewed/2022/05/GHSA-fgj8-93xx-f6g6/GHSA-fgj8-93xx-f6g6.json index 0adf1469f0e..da62ae2084d 100644 --- a/advisories/github-reviewed/2022/05/GHSA-fgj8-93xx-f6g6/GHSA-fgj8-93xx-f6g6.json +++ b/advisories/github-reviewed/2022/05/GHSA-fgj8-93xx-f6g6/GHSA-fgj8-93xx-f6g6.json @@ -1,7 +1,7 @@ { "schema_version": "1.4.0", "id": "GHSA-fgj8-93xx-f6g6", - "modified": "2024-04-24T17:11:13Z", + "modified": "2025-04-16T16:09:23Z", "published": "2022-05-24T17:05:59Z", "aliases": [ "CVE-2020-5504" @@ -67,6 +67,10 @@ "type": "WEB", "url": "https://github.com/FriendsOfPHP/security-advisories/blob/master/phpmyadmin/phpmyadmin/CVE-2020-5504.yaml" }, + { + "type": "WEB", + "url": "https://github.com/MarkLee131/awesome-web-pocs/blob/main/CVE-2020-5504.md" + }, { "type": "PACKAGE", "url": "https://github.com/phpmyadmin/composer" diff --git a/advisories/github-reviewed/2022/10/GHSA-5jp2-vwrj-99rf/GHSA-5jp2-vwrj-99rf.json b/advisories/github-reviewed/2022/10/GHSA-5jp2-vwrj-99rf/GHSA-5jp2-vwrj-99rf.json index 17e3e458e24..9841eafc114 100644 --- a/advisories/github-reviewed/2022/10/GHSA-5jp2-vwrj-99rf/GHSA-5jp2-vwrj-99rf.json +++ b/advisories/github-reviewed/2022/10/GHSA-5jp2-vwrj-99rf/GHSA-5jp2-vwrj-99rf.json @@ -1,13 +1,13 @@ { "schema_version": "1.4.0", "id": "GHSA-5jp2-vwrj-99rf", - "modified": "2022-12-27T22:03:26Z", + "modified": "2025-04-16T16:08:47Z", "published": "2022-10-19T20:26:05Z", "aliases": [ "CVE-2022-31683" ], "summary": "Team scope authorization bypass when Post/Put request with :team_name in body, allows HTTP parameter pollution ", - "details": "### Impact\nFor some Post/Put Concourse endpoint containing `:team_name` in the URL, a Concourse user can send a request with body including `:team_name=team2` to bypass team scope check to gain access to certain resources belong to any other team. The user only needs a valid user session and belongs to team2.\n\nExploitable endpoints:\n```\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/jobs/:job_name/builds/:build_name\", Method: \"POST\", Name: RerunJobBuild},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/jobs/:job_name/pause\", Method: \"PUT\", Name: PauseJob},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/jobs/:job_name/unpause\", Method: \"PUT\", Name: UnpauseJob},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/jobs/:job_name/schedule\", Method: \"PUT\", Name: ScheduleJob},\n\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/pause\", Method: \"PUT\", Name: PausePipeline},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/unpause\", Method: \"PUT\", Name: UnpausePipeline},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/expose\", Method: \"PUT\", Name: ExposePipeline},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/hide\", Method: \"PUT\", Name: HidePipeline},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/rename\", Method: \"PUT\", Name: RenamePipeline},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/archive\", Method: \"PUT\", Name: ArchivePipeline},\n\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/resources/:resource_name/versions/:resource_config_version_id/enable\", Method: \"PUT\", Name: EnableResourceVersion},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/resources/:resource_name/versions/:resource_config_version_id/disable\", Method: \"PUT\", Name: DisableResourceVersion},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/resources/:resource_name/versions/:resource_config_version_id/pin\", Method: \"PUT\", Name: PinResourceVersion},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/resources/:resource_name/unpin\", Method: \"PUT\", Name: UnpinResource},\n\t\n{Path: \"/api/v1/teams/:team_name/artifacts\", Method: \"POST\", Name: CreateArtifact},\n```\n\n### Steps to reproduce\n\n1. Set up a Concourse deployment with team 1 (with pipeline 1) and team 2. User is in team 2 but not team 1.\n2. Login as user to team 2.\n```\nfly -t ci login -n team2 -u user -p password\n```\n3. Try pausing pipeline 1 in team 1 using fly. Verify the command output is `pipeline 'pipeline1' not found`.\n```\nfly -t ci pause-pipeline -p pipeline1\n```\n\n\n4. Send a customized request through `fly curl` command intend to pause pipeline 1 again. \n```\nfly -t ci curl /api/v1/teams/team1/pipelines/pipeline1/pause -- -X PUT -d \":team_name=team2\" -H \"Content-type: application/x-www-form-urlencoded\"\n```\n5. pipeline 1 in team 1 will be paused.\n\nIn step 4, the parameter pollution would allow an user from any team to pause a pipeline that belongs to other team.\n\n### Patches\nConcourse [v6.7.9](https://github.com/concourse/concourse/releases/tag/v6.7.9) and [v7.8.3](https://github.com/concourse/concourse/releases/tag/v7.8.3) were both released with a fix on October 12, 2022.\n\nInstead of using [`FormValue`](https://pkg.go.dev/net/http#Request.FormValue) to parse team_name in the request, where allows body parameters to take precedence over URL query string values, both patch versions are now using `URL.Query().Get()` over multiple scope handlers to prevent the parameter pollution.\n\n### Workarounds\nNo known workarounds for existing versions.\n\n### References\n * https://github.com/concourse/concourse/pull/8566: PR with the fix\n\n### For more information\nIf you have any questions or comments about this advisory, you may reach us privately at [security@concourse-ci.org](mailto:security@concourse-ci.org).\n", + "details": "### Impact\nFor some Post/Put Concourse endpoint containing `:team_name` in the URL, a Concourse user can send a request with body including `:team_name=team2` to bypass team scope check to gain access to certain resources belong to any other team. The user only needs a valid user session and belongs to team2.\n\nExploitable endpoints:\n```\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/jobs/:job_name/builds/:build_name\", Method: \"POST\", Name: RerunJobBuild},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/jobs/:job_name/pause\", Method: \"PUT\", Name: PauseJob},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/jobs/:job_name/unpause\", Method: \"PUT\", Name: UnpauseJob},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/jobs/:job_name/schedule\", Method: \"PUT\", Name: ScheduleJob},\n\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/pause\", Method: \"PUT\", Name: PausePipeline},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/unpause\", Method: \"PUT\", Name: UnpausePipeline},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/expose\", Method: \"PUT\", Name: ExposePipeline},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/hide\", Method: \"PUT\", Name: HidePipeline},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/rename\", Method: \"PUT\", Name: RenamePipeline},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/archive\", Method: \"PUT\", Name: ArchivePipeline},\n\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/resources/:resource_name/versions/:resource_config_version_id/enable\", Method: \"PUT\", Name: EnableResourceVersion},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/resources/:resource_name/versions/:resource_config_version_id/disable\", Method: \"PUT\", Name: DisableResourceVersion},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/resources/:resource_name/versions/:resource_config_version_id/pin\", Method: \"PUT\", Name: PinResourceVersion},\n{Path: \"/api/v1/teams/:team_name/pipelines/:pipeline_name/resources/:resource_name/unpin\", Method: \"PUT\", Name: UnpinResource},\n\t\n{Path: \"/api/v1/teams/:team_name/artifacts\", Method: \"POST\", Name: CreateArtifact},\n```\n\n### Steps to reproduce\n\n1. Set up a Concourse deployment with team 1 (with pipeline 1) and team 2. User is in team 2 but not team 1.\n2. Login as user to team 2.\n```\nfly -t ci login -n team2 -u user -p password\n```\n3. Try pausing pipeline 1 in team 1 using fly. Verify the command output is `pipeline 'pipeline1' not found`.\n```\nfly -t ci pause-pipeline -p pipeline1\n```\n\n\n4. Send a customized request through `fly curl` command intend to pause pipeline 1 again. \n```\nfly -t ci curl /api/v1/teams/team1/pipelines/pipeline1/pause -- -X PUT -d \":team_name=team2\" -H \"Content-type: application/x-www-form-urlencoded\"\n```\n5. pipeline 1 in team 1 will be paused.\n\nIn step 4, the parameter pollution would allow an user from any team to pause a pipeline that belongs to other team.\n\n### Patches\nConcourse [v6.7.9](https://github.com/concourse/concourse/releases/tag/v6.7.9) and [v7.8.3](https://github.com/concourse/concourse/releases/tag/v7.8.3) were both released with a fix on October 12, 2022.\n\nInstead of using [`FormValue`](https://pkg.go.dev/net/http#Request.FormValue) to parse team_name in the request, where allows body parameters to take precedence over URL query string values, both patch versions are now using `URL.Query().Get()` over multiple scope handlers to prevent the parameter pollution.\n\n### Workarounds\nNo known workarounds for existing versions.\n\n### References\n * https://github.com/concourse/concourse/pull/8566: PR with the fix\n\n### For more information\nIf you have any questions or comments about this advisory, you may reach us privately at [security@concourse-ci.org](mailto:security@concourse-ci.org).", "severity": [ { "type": "CVSS_V3", @@ -94,6 +94,7 @@ ], "database_specific": { "cwe_ids": [ + "CWE-639", "CWE-863" ], "severity": "MODERATE", diff --git a/advisories/github-reviewed/2022/12/GHSA-33vh-7x8q-mg35/GHSA-33vh-7x8q-mg35.json b/advisories/github-reviewed/2022/12/GHSA-33vh-7x8q-mg35/GHSA-33vh-7x8q-mg35.json index c9caad3637b..aeaadc50598 100644 --- a/advisories/github-reviewed/2022/12/GHSA-33vh-7x8q-mg35/GHSA-33vh-7x8q-mg35.json +++ b/advisories/github-reviewed/2022/12/GHSA-33vh-7x8q-mg35/GHSA-33vh-7x8q-mg35.json @@ -1,7 +1,7 @@ { "schema_version": "1.4.0", "id": "GHSA-33vh-7x8q-mg35", - "modified": "2023-01-02T16:24:43Z", + "modified": "2025-04-16T16:08:32Z", "published": "2022-12-20T06:30:36Z", "aliases": [ "CVE-2022-25904" diff --git a/advisories/github-reviewed/2022/12/GHSA-jfm8-hwhg-r6gg/GHSA-jfm8-hwhg-r6gg.json b/advisories/github-reviewed/2022/12/GHSA-jfm8-hwhg-r6gg/GHSA-jfm8-hwhg-r6gg.json index 7a8630bc70d..602c39dbb72 100644 --- a/advisories/github-reviewed/2022/12/GHSA-jfm8-hwhg-r6gg/GHSA-jfm8-hwhg-r6gg.json +++ b/advisories/github-reviewed/2022/12/GHSA-jfm8-hwhg-r6gg/GHSA-jfm8-hwhg-r6gg.json @@ -1,7 +1,7 @@ { "schema_version": "1.4.0", "id": "GHSA-jfm8-hwhg-r6gg", - "modified": "2022-12-20T17:38:21Z", + "modified": "2025-04-16T16:08:22Z", "published": "2022-12-20T06:30:36Z", "aliases": [ "CVE-2022-25171" @@ -52,10 +52,6 @@ "type": "WEB", "url": "https://github.com/natelong/p4/blob/master/p4.js#23L12" }, - { - "type": "WEB", - "url": "https://github.com/natelong/p4/blob/master/p4.js%23L12" - }, { "type": "WEB", "url": "https://security.snyk.io/vuln/SNYK-JS-P4-3167330"