GHSA-xr38-w74q-r8jv

    Dashboard / Vulnerabilities / GHSA-xr38-w74q-r8jv

    GHSA-xr38-w74q-r8jv

    Published: 6 Dec 2021Last Modified: 8 Jul 2026

    Summary: Permissions not properly checked in Invenio-Drafts-Resources

    Details: ### Impact Invenio-Drafts-Resources does not properly check permissions when a record is published. The vulnerability is exploitable in a default installation of InvenioRDM. An authenticated 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. ### Details The service's ``publish()`` method contains the following permission check: ```python def publish(..): self.require_permission(identity, "publish") ``` However, the record should have been passed into the permission check so that the need generators have access to e.g. the record owner. ```python def publish(..): self.require_permission(identity, "publish", record=record) ``` The bug is activated in Invenio-RDM-Records which has a need generator called ``RecordOwners()``, which when no record is passed in defaults to allow any authenticated user: ```python class RecordOwners(Generator): def needs(self, record=None, **kwargs): if record is None: return [authenticated_user] # ... ``` ### Patches 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. You can verify the version installed of Invenio-Drafts-Resources via PIP: ```console cd ~/src/my-site pipenv run pip freeze | grep invenio-drafts-resources ``` ### References - [Security policy](https://invenio.readthedocs.io/en/latest/community/security-policy.html) ### For more information If you have any questions or comments about this advisory: * Chat with us on Discord: https://discord.gg/8qatqBC

    Affected packages

    Package

    Name: invenio-drafts-resources

    Purl: pkg:pypi/invenio-drafts-resources

    Affected ranges

    Type: ECOSYSTEM

    Events:

    Introduced- 0
    Fixed -0.13.7

    Affected versions

    0.1.0
    0.1.2
    0.1.3

    Common Vulnerability Scoring System

    Attack Vector
    Network
    Adjacent
    Local
    Physical
    Privileges Required
    None
    Low
    High
    User Interaction
    None
    Required
    Scope
    Unchanged
    Changed
    Confidentiality
    None
    Low
    High
    Integrity
    None
    Low
    High
    Availability
    None
    Low
    High
    GHSA-xr38-w74q-r8jv | CVE-DB