Sometimes catalog and catproc components become invalid due to some invalid objects. You need to find those objects and take necessary action.

SQL> select comp_id, status, version from dba_registry;

COMP_ID STATUS VERSION
------------ ----------- --------------
CATALOG INVALID 11.2.0.3.0
CATPROC INVALID 11.2.0.3.0

Use below script to get the objects which is causing the issue:
set serveroutput on; 
declare 
start_time date; 
end_time date; 
object_name varchar(100); 
object_id char(10); 
begin 
SELECT date_loading, date_loaded into start_time, end_time FROM registry$ 
WHERE cid = 'CATPROC'; 
SELECT obj#,name into object_id,object_name 
FROM obj$ 
WHERE status > 1 AND 
(ctime BETWEEN start_time AND end_time OR 
mtime BETWEEN start_time AND end_time OR 
stime BETWEEN start_time AND end_time) AND 
ROWNUM <=1; 
dbms_output.put_line('Please compile Invalid object '||object_name||' 
Object_id '||object_id ); 
EXCEPTION 
WHEN NO_DATA_FOUND THEN 
dbms_output.put_line('CATPROC can be validated now' ); 
end; 
/

It will ask you compile the invalid objects, once these objects are validated, CATALOG and CATPROC will become VALID.