ORA-00600 17287 fix
There are some MoS docs for ORA-00600 [17287] suggesting to rerun various dictionary install scripts.
Sometimes that might be needed – but in my case would have been overkill, because just recompiling the invalid objects to get them to status invalid was all that was needed – with a few extra grants needed applied back which had been revoked by overly-tight lockdown restrictions.
Below was done at container cdb$root level.
Can affect version 12.2 and above.
In extreme cases startup restrict may be needed to get the database in a state where this fix can be applied.
set pages 999 lines 140 doc off col owner form a30 col object_name form a30 exec utl_recomp.recomp_serial ; select owner , object_name , object_type from dba_objects where status = 'INVALID' order by 1,2 ; /* -- to compile cleanly may just need grants similar to the below e.g.: grant execute on sys.utl_tcp to gsmadmin_internal ; grant execute on sys.dbms_lob to gsmadmin_internal ; grant execute on sys.dbms_scheduler to gsmadmin_internal ; grant execute on sys.dbms_random to gsmadmin_internal ; grant execute on sys.utl_http to gsmadmin_internal ; grant execute on sys.dbms_job to gsmadmin_internal ; grant execute on sys.dbms_scheduler to xdb ; */
Hi,
See https://www.dbsecworx.com/res_expl/utl_inaddr_exploit.html
and REVOKE execute ON utl_inaddr FROM PUBLIC;
But on 21cXE PDB is scratching and affects the CBD at next startup.
ORA-00600: internal error code, arguments: [17287], [0x1153112E8], [], [], [], [], [], [], [], [], [], []
startup restrict; grant execute on sys.utl_inaddr to gsmadmin_internal;
select … from dba_objects where …; alter package gsmadmin_internal.DBMS_GSM_DBADMIN compile body; show errors => no
exec utl_recomp.recomp_serial;
select … from dba_objects; => no rows selected.
shutdown immediate; startup; => everything is open
Cheers