ArduPilot / ArduPilot/MissionPlanner

Is the MAVLink WebSocket on TCP/56781 intended to be remotely writable?

Open
#3,757 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
2.4k
Forks
2.9k
Avg merge
19h 16m
Merged PRs (30d)
4

Description

I found that Mission Planner starts a WebSocket server on TCP port 56781 using non-loopback network interfaces. One of the exposed endpoints is "/websocket/raw". The endpoint does not require authentication, and data received is written directly to Mission Planner's active vehicle connection.

I was able to connect to this endpoint from another host on the network and send a MAVLink command to a connected ArduCopter SITL instance. For example, I was able to change the disarmed vehicle from STABILIZE to ALT_HOLD.

My main question is whether remote write access to "/websocket/raw" is intended. Looking at the code, it seems to hint towards an intention for read only and localhost only. The surrounding Mission Planner/ArduPilot usage I found appears to treat port 56781 as a localhost integration interface. However, I do not have clear proof for that.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the code that creates the WebSocket server on TCP/56781 and handles /websocket/raw, then trace how received data reaches the active vehicle connection. Confirm whether remote unauthenticated writes are intended; done requires a documented decision and, if behavior changes, coverage for network exposure and write access.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop, networking, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.