Benno Evers created MESOS-9569:
----------------------------------
Summary: Missing master-side validation of
UpdateOperationStatusMessage
Key: MESOS-9569
URL: https://issues.apache.org/jira/browse/MESOS-9569
Project: Mesos
Issue Type: Bug
Reporter: Benno Evers
The master is currently not validating incoming
`UpdateOperationStatusMessage`s, and is performing `CHECK()`s on the values of
certain protobuf fields of the message.
This means a malformed HTTP request can trigger a master crash. This can be
reproduced e.g. by executing code like this on a master host:
{noformat}
import urllib.request
rq =
urllib.request.Request("http://localhost:5050/master/mesos.internal.UpdateOperationStatusMessage",
headers={"Libprocess-From": "[email protected]:5052"}, method="POST",
data=b'\x1a\x02\x10\x01*\x05\n\x03xxx')
rsp = urllib.request.urlopen(rq).read()
{noformat}
(where the posted data is just an UpdateOperationStatusMessage protobuf without
a slave_id serialized as string)
{noformat}
F0213 13:14:22.507489 16492 master.cpp:8413] Check failed:
update.has_slave_id() External resource provider is not supported yet
{noformat}
Looking at other internal messages, some of them already have a validation step
implemented (i.e. RegisterSlaveMessage), so probably we should probably add
something similar for this case.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)