CVE-2021-43781 Permissions not properly checked in Invenio-Drafts-Resources

Medium 6.4 Published Updated

Authenticated users can publish other users' draft records via REST API due to missing permission checks, allowing unauthorized state changes.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2021-43781?

CVE-2021-43781 is a medium-severity missing authorization vulnerability in inveniosoftware invenio-drafts-resources, published on 6 Dec 2021. Any signed-in user can exploit it over the network, with no action from the victim.

Official description

Invenio-Drafts-Resources is a submission/deposit module for Invenio, a software framework for research data management. Invenio-Drafts-Resources prior to versions 0.13.7 and 0.14.6 does not properly check permissions when a record is published. The vulnerability is exploitable in a default installation of InvenioRDM. An authenticated a user is able via REST API calls to publish draft records of other users if they know the record identifier and the draft validates (e.g. all require fields filled out). An attacker is not able to modify the data in the record, and thus e.g. *cannot* change a record from restricted to public. The problem is patched in Invenio-Drafts-Resources v0.13.7 and 0.14.6, which is part of InvenioRDM v6.0.1 and InvenioRDM v7.0 respectively.

Weakness: CWE-863, CWE-862

Which versions are affected by CVE-2021-43781?

15 open source packages ship an affected version, including invenio-drafts-resources, invenio-app-rdm and invenio-rdm-records. It affects 1 product.

PackageAffectedFixed in
invenio-drafts-resources PyPIAll versions0.13.7, 0.14.6
invenio-drafts-resources PyPIAll versions0.13.7
invenio-drafts-resources PyPIAll versions0.13.7
invenio-drafts-resources PyPIFrom 0.14.00.14.6
invenio-drafts-resources PyPIFrom 0.14.00.14.6
invenio-app-rdm PyPIAll versions6.0.5, 7.0.0.dev5
9 more packages
invenio-app-rdm PyPIAll versions6.0.5
invenio-app-rdm PyPIAll versions6.0.5
invenio-app-rdm PyPIFrom 7.0.0.dev07.0.0.dev5
invenio-app-rdm PyPIFrom 7.0.0.dev07.0.0.dev5
invenio-rdm-records PyPIAll versions0.32.6, 0.33.10
invenio-rdm-records PyPIAll versions0.32.6
invenio-rdm-records PyPIAll versions0.32.6
invenio-rdm-records PyPIFrom 0.33.00.33.10
invenio-rdm-records PyPIFrom 0.33.00.33.10

Products include Inveniosoftware Invenio-Drafts-Resources.

How do I fix CVE-2021-43781?

Upgrade invenio-drafts-resources to a fixed version for your release line: 0.13.7 or 0.14.6.

Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.

Is CVE-2021-43781 being exploited?

There is no known exploitation of CVE-2021-43781 in the wild and no public exploit code.

Sources

Also known as GHSA-xr38-w74q-r8jv, PYSEC-2021-836, PYSEC-2021-837, PYSEC-2021-838.

Is CVE-2021-43781 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free