Eymoutiers, France, Septembre 4th, 2026

Dalibo is pleased to announce `PostgreSQL Anonymizer 3.2` introducing a new
panel of fast pseudonymization filters.

Enhanced Privacy Protection for Your Data
--------------------------------------------------------------------------------

`PostgreSQL Anonymizer` is an extension that hides or replaces personally
identifiable information (PII) or commercially sensitive data from a PostgreSQL
database.

The extension offers 6 different masking strategies:

* [Dynamic Masking] - Real-time data protection
* [Static Masking] - Permanent data transformation
* [Replica Masking] - Anonymized logical replication
* [Backup Masking] - Privacy-protected database exports
* [Masking Views] - Controlled data visibility
* [Masking Data Wrappers] - Extended protection across systems

Each strategy is complemented by an enhanced suite of Masking Functions, 
including
advanced techniques such as: Substitution, Randomization, Faking, 
Pseudonymization,
Partial Scrambling, Shuffling, Noise Addition and Generalization.

The extension can be installed with Debian and RPM packages, an Ansible role, a 
Docker
image, etc. You can use it on most major DBaaS providers including : Alibaba 
Cloud,
Crunchy Bridge, Google Cloud SQL, IBM Cloud, Microsoft Azure Database, Neon, 
Yandex
It is also available on some Postgres forks such as EDB Advanced Postgres, 
Greenplum
and Yugabyte.

See the [INSTALL] section of the documentation for more details!


[Masking Functions]: 
https://postgresql-anonymizer.readthedocs.io/en/latest/masking_functions/
[Backup Masking]: 
https://postgresql-anonymizer.readthedocs.io/en/latest/anonymous_dumps/
[Static Masking]: 
https://postgresql-anonymizer.readthedocs.io/en/latest/static_masking/
[Dynamic Masking]: 
https://postgresql-anonymizer.readthedocs.io/en/latest/dynamic_masking/
[Replica Masking]: 
https://postgresql-anonymizer.readthedocs.io/en/latest/replica_masking/
[Masking Views]: 
https://postgresql-anonymizer.readthedocs.io/en/stable/masking_views/
[Masking Data Wrappers]: 
https://postgresql-anonymizer.readthedocs.io/en/stable/masking_data_wrappers/
[INSTALL]: https://postgresql-anonymizer.readthedocs.io/en/latest/INSTALL/


Fast and Localized pseudonymization
--------------------------------------------------------------------------------

Although [Pseudonymization is not Anonymization], it may be useful in some
contexts.

Until version 3.1, this was achieved with a panel of `pseudo_*` functions,
such as `anon.pseudo_last_name(...)`, `anon.pseudo_email(...)`, etc.

These functions are now replaced by a new panel of `anon.seeded_*` functions,
such as `anon.seeded_last_name(...)`, `anon.seeded_email(...)`, etc.

The `anon.seeded_*` functions have 2 main advantages over the previous ones:

* They can be localized, e.g `anon.seeded_street_name(id,'fr_FR')`
* They are 40x faster :)

The `anon.pseudo_*` functions are kept for backward compatibility but are now
deprecated and will be removed in a future version. We encourage all users to
switch to the new `anon.seeded_*` functions as soon as possible.

[Pseudonymization is not Anonymization]: 
https://postgresql-anonymizer.readthedocs.io/en/latest/masking_functions/#pseudonymization-is-not-anonymization

Important Security Update
--------------------------------------------------------------------------------

Version 3.2 includes fixes for 3 critical vulnerabilities allowing a user
 to gain superuser privileges under certain circumstances. The risk is very high
on PostgreSQL 14 and on instances upgraded from PostgreSQL 14 and earlier.

These vulnerabilities are declared below:

* [CVE-2026-19633]: Privilege elevation via custom types, operators and 
rangevars
* [CVE-2026-19634]: SQL injection in the masking rules import functions
* [CVE-2026-83534]: Privilege elevation via parallel static masking

[CVE-2026-19633]: https://www.cve.org/CVERecord?id=CVE-2026-19633
[CVE-2026-19634]: https://www.cve.org/CVERecord?id=CVE-2026-19634
[CVE-2026-83534]: https://www.cve.org/CVERecord?id=CVE-2026-83534

**All users should upgrade the extension to version 3.2 as soon as possible.**

See [issue 665] and [issue 666] for more details.

[issue 665]: https://gitlab.com/dalibo/postgresql_anonymizer/-/issues/665
[issue 666]: https://gitlab.com/dalibo/postgresql_anonymizer/-/work_items/666

Version 3.2 introduces a new security barrier that forbids superusers from
using any kind of masking (static, dynamic, etc.). Enforcing the principle of
"Least Privilege", the extension now refuses to run any masking function on
behalf of a superuser.

Especially if you are currently using static masking, replica masking or backup
masking with a superuser, we advise you to create a dedicated role for that.

The previous behaviour can be restored by setting `anon.nosuperuser` to `FALSE`,
in which case the security barrier will be removed and superusers will be able
to execute masking rules at their own risk.

Upgrade
--------------------------------------------------------------------------------

The JSON schema used for imports / exports has changed between version 3.1 and
3.2. It is recommended to re-export the rules after the upgrade to 3.2

See the [UPGRADE] section for more details.

[UPGRADE]: https://postgresql-anonymizer.readthedocs.io/en/latest/UPGRADE

Acknowledgments
--------------------------------------------------------------------------------

This release includes code, bugfixes, documentation, code reviews and ideas
from Alain Lesage, Benoit Lobréau and other [contributors]. Kudos to Alain for
his first contributions !

[CVE-2026-19633] and [CVE-2026-19634] were reported by Sarath Kumar, IITM
Pravartak Security Team
[CVE-2026-83534] was reported by Alexander Kukushkin.
Many thanks to them and to the PostgreSQL Security Team.

We would also like to thanks the people at [Efluid] who helped us with their
ideas, comments and testing.

[Efluid]: https://www.efluid.com/

And also special thanks to the [PGRX] team for their amazing work!

[contributors]: 
https://gitlab.com/dalibo/postgresql_anonymizer/-/blob/master/AUTHORS.md
[PGRX]: https://github.com/pgcentralfoundation/pgrx


Join our community to improve data privacy!
--------------------------------------------------------------------------------

PostgreSQL Anonymizer is part of the [Dalibo Labs] initiative. It is mainly
developed by [Damien Clochard] and [Benoit Lobréau].

This is an open project, contributions are welcome. We need your feedback and
ideas! Let us know what you think of this tool, how it fits your needs and
what features are missing.

If you want to help, you can find a list of [Junior Jobs].

[Junior Jobs]: 
https://gitlab.com/dalibo/postgresql_anonymizer/issues?label_name%5B%5D=Junior+Jobs

Reply via email to