I received multiple questions from colleagues and customers over the past weeks regarding the security content in RUs and MRPs. See also my blog post from yesterday where I touched this topic briefly. The question regarding RUs, MRPS and CSPUs often is: Are there security fixes included? Which CVEs?

Photo by Gene Gallin on Unsplash
Release Updates are the primary vehicle
As I explained already, Release Updates (RU) are the primary and main vehicle to deliver security fixes. MRPs and CSPUs contain only a smaller portion, usually those fixes with really high CVE scores which can’t wait until we fix them in the coming Release Update.
This means: You need to use the current Release Update, and you may need to add the most recent MRP (Monthly Recommend Patch) on Linux for 19c or 26ai on top, or the most recent CSPU (Critical Security Patch Update) for all other platforms and versions.
And of course, as I wrote broadly about before, in order to do so, you must upgrade to Oracle Database 19c or Oracle AI Database 26ai. You should not operate and use older releases.
How many security fixes are included in the most recent RUs?
We can quickly find this out by using oradiff.oracle.com.
Go to: “Included Fixes” on the left-side menu, then choose “List of Fixes“. When you compare now two RUs to each other, you can see all the included fixes in a given RU according to the inventory. Then “Actions” button between the Versions Selector and the displayed results and add a “Filter” via “matches regular expression” for “Fix for Bug” in the “Bug Description” column as shown below.

Adding a FILTER via the ACTIONS button in oradiff.oracle.com
Now you can see all the security fixes listed since the usually start with “Fix for Bug” with a bug number.
When we do this now for the most recent Release Updates, we get this graphic:

Overview on fix content and security fix content per Release Update from 19.25 to 19.32
You can easily see that we included a lot of security fixes into 19.32 compared to other RUs (whereas 19.27 remains a special case).
Can we see the same for MRPs?
In oradiff.oracle.com we list the MRPs (and CSPUs) as well. I do this here as an example for 19.31 and the available 5 MRPs as of now.

MRPs for Oracle Database 19c Release Update 19.31 – Security Content
Can you map this to CVEs?
When you check the README of any given MRP or CSPU, we list the CVEs as well (scroll towards the lower section of the READMEs). But we don’t map CVEs to individual bug numbers. Still, a recurring question was whether you can find out which CVEs are fixed with any given RU or MRP.
Choose “Included Fixes” on the left menu in oradiff.oracle.com, and then “List of CVEs”. Then select the releases you’d like to compare, for instance:

Version selector in oradiff.oracle.com allows the comparison of CVEs
Let me do this first for 19.32 as the plain RU compared to 19.32 with the MRP of September 15 applied on top:

CVE content for 19.32 Release Update – Plain RU vs MRP4
I cut off the list here – but all together, 17 CVEs are fixed. You can now access the CPU Alert (linked from the CPU column) and the MOS ID (liked in the right-most column) telling you more details about it.
Of course, you can do the whole selection also in a per-Release-Update basis – or compare 19.32 with MRP3 to the base release. You will find out that 243 CVEs are fixed in the most recent RU with the most recent MRP compared to the 19.3.0 base release from 2019.
Finally, please be aware that this information is strictly based on what you (and we) can see from READMEs, MOS notes and the inventories. There is no magic done here, and we don’t reveal any secrets. We just want to make your life easier in case you rely on this information for your internal documentation. Since I speak with many of you, I know that some teams have to document which CVEs are fixed in a given patch release. This should help you compiling the information together.
And please don’t ask to which bug number any given CVE maps. This information is not visible to us.
Further Links and Information
- CVE scores
- oradiff.oracle.com
- Why you can’t do n-1 anymore
- Clarifications about CPUs, CSPUs, MRPs and RUs
- More clarifications about CPUs, CSPUs, MRPs, RUs
- Patch your database against AI-enabled cybersecurity threats
- Accelerating Vulnerability Detection and Response at Oracle (3 min read – April 29, 2026)
- Take Action Today: Protect Your Oracle Database Against AI-Enabled Cybersecurity Threats (1 min read – April 30, 2026)
–Mike
Mike,
many thanks for that helpful article and odadiff utility. It was only a few weeks ago that support told me there was no way to find out which CVEs had been fixed in which RU. So it’s all the better that we now have a tool.
But it gets really interesting for us the other way round: the security team gives me a CVE, and I want to know in which RU the vulnerability has been fixed (if it has been). The focus here is less on the comparison and more on the “when” and “where.” Is there a way to do that?
Hi Kay,
partially you can do something close to what you have in your mind.
oradiff => Included Fixes => CPU Explore => Go to last tab (Search CVE)
What we can’t do easily (but we think about it already) is to allow a recursive search in which exact MRP or CSPU or RU a CVE appeared at first.
This isn’t trivial since CVEs are mapped to bug numbers visibly.
Cheers,
Mike
Hi Mike, I try to like the MRPs, but it’s not that easy 😉 Currently we have a conflict between a one-off that is mandatory for some auf our systems to work and one of the subpatches of the MRPs for 19.32. I opened a service request and got the reply that it is not possible to build a merge patch. How can I adress the CVEs when the full MRP clashes with one-offs I cannot leave out? I’m still hoping that the conflicting one-off will be in the next RU, but for now I have no workaround. I was thinking about installing all but the conflicting subpatch of the MRP. How do I know which CVEs I don’t fix that way? Is there a Patch ID CVE MOS note that looks beyound RU and MRP? And also when I tested this from scratch I found that some of the subpatches are not available for direct download since they are password protected. It feels wrong that I might try to build my own patch archives from the contents of the MRP Zip…
I’m not sure that I like the combination of security and functional fixes in the MRPs. Each additional subpatch can conflict with one-offs on the customer side. I’d love to have RU + MRP only with our databases but that is not possible for us.
Daniel,
do me a favor, please, and list the fix number you definitely need, and the fix number of the MRP – and where the conflict comes from.
Feel free to drop me an email to mike.dietrich … oracle.com.
I know the complication, and I am happy to discuss this with the people in charge of this process.
Thanks
Mike