Daily updates from Odoo
Friday, August 14, 2026
3 changes
1 change
Security fixes and vulnerability patches
Odoo Sign now verifies that a user can read a record before allowing it to be linked to a signature request. This prevents users from exposing information from records they are not authorized to access by manually changing the linked record.
Original PR description
Version: saas-18.3 Reported issue: 1. Marc Demo creates a sign request from a template whose fields are automatically populated from the linked record. 2. It is sent to himself. He does not have…
Version: saas-18.3 Reported issue: 1. Marc Demo creates a sign request from a template whose fields are automatically populated from the linked record. 2. It is sent to himself. He does not have access to all records of a referenced model (e.g. Sales Orders). 3. The "Linked To" (reference_doc) field is edited afterwards to point to a record the signer does not have access to. By the time it's signed, the value of that record becomes visible - so a user can, simply by changing the linked record, see the value of a record they were never authorized to access. Even a Sign Manager could link a request to a record they have no access to and later see its value through it. Issue: `reference_doc` could be set or changed to any record of any allowed model with no validation that the acting user actually has access to it. In the interface, you can only create a signature request from a record you can see, but editing `reference_doc` manually (via write(), RPC, etc.) was not held to the same rule, making it an easy way to leak information about records outside your normal access. Cause: The only restriction was cosmetic, enforced client-side by the record picker widget filtering its search results. Nothing on the server validated the value being written to `reference_doc`. Fix: `write()` now checks that the acting user has read access to the target record before allowing `reference_doc` to be set, raising a ValidationError otherwise, bringing manual edits in line with what the interface already enforces when creating a request. Forward-Port-Of: odoo/enterprise#127715
1 change
Security fixes and vulnerability patches
This fix prevents users from linking a signature request to records they are not allowed to view. It closes a security gap where hidden record values could become visible through the signing process, keeping Sign requests aligned with normal access permissions.
Original PR description
Version: saas-18.3 Reported issue: 1. Marc Demo creates a sign request from a template whose fields are automatically populated from the linked record. 2. It is sent to himself. He does not have…
Version: saas-18.3 Reported issue: 1. Marc Demo creates a sign request from a template whose fields are automatically populated from the linked record. 2. It is sent to himself. He does not have access to all records of a referenced model (e.g. Sales Orders). 3. The "Linked To" (reference_doc) field is edited afterwards to point to a record the signer does not have access to. By the time it's signed, the value of that record becomes visible - so a user can, simply by changing the linked record, see the value of a record they were never authorized to access. Even a Sign Manager could link a request to a record they have no access to and later see its value through it. Issue: `reference_doc` could be set or changed to any record of any allowed model with no validation that the acting user actually has access to it. In the interface, you can only create a signature request from a record you can see, but editing `reference_doc` manually (via write(), RPC, etc.) was not held to the same rule, making it an easy way to leak information about records outside your normal access. Cause: The only restriction was cosmetic, enforced client-side by the record picker widget filtering its search results. Nothing on the server validated the value being written to `reference_doc`. Fix: `write()` now checks that the acting user has read access to the target record before allowing `reference_doc` to be set, raising a ValidationError otherwise, bringing manual edits in line with what the interface already enforces when creating a request. Forward-Port-Of: odoo/enterprise#127715
1 change
Security fixes and vulnerability patches
Sign requests can no longer be linked to records that the person making the change is not allowed to read. This prevents sensitive record information from becoming visible through signed documents and aligns manual edits with normal interface permissions.
Original PR description
Version: saas-18.3 Reported issue: 1. Marc Demo creates a sign request from a template whose fields are automatically populated from the linked record. 2. It is sent to himself. He does not have…
Version: saas-18.3 Reported issue: 1. Marc Demo creates a sign request from a template whose fields are automatically populated from the linked record. 2. It is sent to himself. He does not have access to all records of a referenced model (e.g. Sales Orders). 3. The "Linked To" (reference_doc) field is edited afterwards to point to a record the signer does not have access to. By the time it's signed, the value of that record becomes visible - so a user can, simply by changing the linked record, see the value of a record they were never authorized to access. Even a Sign Manager could link a request to a record they have no access to and later see its value through it. Issue: `reference_doc` could be set or changed to any record of any allowed model with no validation that the acting user actually has access to it. In the interface, you can only create a signature request from a record you can see, but editing `reference_doc` manually (via write(), RPC, etc.) was not held to the same rule, making it an easy way to leak information about records outside your normal access. Cause: The only restriction was cosmetic, enforced client-side by the record picker widget filtering its search results. Nothing on the server validated the value being written to `reference_doc`. Fix: `write()` now checks that the acting user has read access to the target record before allowing `reference_doc` to be set, raising a ValidationError otherwise, bringing manual edits in line with what the interface already enforces when creating a request. Forward-Port-Of: odoo/enterprise#127715