question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Is the inter process communication interface secure?

See original GitHub issue

System information:

  • OS: Linux Slackware 64 -current
  • DBeaver version 7.3.0

Connection specification:

Does not apply

Describe the problem you’re observing:

At startup, DBeaverInstanceServer looks up a random free tcp port between 20000 and 65000, opens it and bind an RMI server that seems to be used as a way of inter-process communication. It looks like it’s not that secure, since:

  • it binds to any available interface, even public ones
  • no credentials are needed to use it
  • it exports remote methods like openExternalFiles, openDatabaseConnection, executeWorkbenchCommand or just quit

If I understand it correctly, the only implemented mitigation is the choice of a random port that gets saved in a text file in order for other instances to know what port to look for. I can see two different problems here:

  • a local one, where an user on a system can look up the port used by the java process of another user and just control the DBeaver instance that the other user is running.
  • a remote one, where a malicious user can basically gain remote code execution using DBeaver as a trampoline.

About the second problem, I expect you to tell me that any firewall would block remote access to that port. I have two notes on this:

Thank you and sorry if I made any wrong assumption here.

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:5 (2 by maintainers)

github_iconTop GitHub Comments

1reaction
kseniiaguzeevacommented, Jan 14, 2021

Thank you so much too for your help!

1reaction
serge-ridercommented, Jan 12, 2021

Thanks for bringing this up. Indeed, this is a sort of security hole. Despite the fact that client machine without a firewall is doomed anyway, we need to close this one.

I think limiting rmi connections with local machine only will solve the problem. Perhaps this should be configurable.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Secure TCP traffic for inter process communication
The communications between these processes can always be intercepted by an attacker with privileged access to the system. With root ...
Read more >
Inter-Process Communication, Technique T1559 - Enterprise
IPC is typically used by processes to share data, communicate with each other, or synchronize execution. IPC is also commonly used to avoid ......
Read more >
Secure inter-process communication for safer computing ...
Today, security of computing systems is a major concern. One such security concern pertains to Inter-Process Communication (IPC). As noted above, Inter-Process ...
Read more >
Validating Input and Interprocess Communication
XPC Services are the most secure way to conduct inter-process communication in a modern app, but even here, the level of security depends...
Read more >
Securing Inter-process Communications in SELinux
Inter -process communication (IPC) refers to the ex- change of information between processes on a single system or over a network. Many methods...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found