SECURITY 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. Security Advisories
  2. ===================
  3. The Xmlrpc-c maintainer will normally post security advisories related
  4. to xmlrpc-c to the xmlrpc-c-announce mailing list. You can subscribe
  5. to this using the web:
  6. http://xmlrpc-c.sourceforge.net/lists.php
  7. You will also find a list of all known bugs including those with
  8. security ramifications, in the release notes on Sourceforge. To see
  9. the release notes for a release, go to the file download page and
  10. click on the release name. The list is current only for the most
  11. current release -- i.e. we stop adding to the list for release N after
  12. we release N+1.
  13. XML-RPC Security
  14. ================
  15. There are some security issues inherent in XML-RPC:
  16. 1) XML-RPC messages are not encrypted at the XML-RPC level. This
  17. means that unless you encrypt them at some lower level, someone
  18. with sufficient access to the network can see them with standard
  19. packet-sniffing and network administration tools.
  20. This is especially dangerous because XML-RPC is a stateless protocol.
  21. If you include reusable authentication tokens in an XML-RPC call, they
  22. can probably be sniffed and used by attackers.
  23. You can solve this problem by using SSL under HTTP. This is possible
  24. with Xmlrpc-c, but it's nontrivial to set up and the Xmlrpc-c
  25. documentation doesn't tell you how.
  26. 2) There are no permission restrictions and no authentication built
  27. into Xmlrpc-c by default -- any client can call any method on any
  28. visible server and neither can know for sure to whom it is talking.
  29. If you need permission and authentication, you either have to put
  30. it above the XML-RPC layer or below. For a server, above means in
  31. the method code you supply and register with the Xmlrpc-c server
  32. facilities; below means something like a firewall that lets clients
  33. only from a certain IP address connect to your server.
  34. 3) XML-RPC is a complex protocol based on complex data structures.
  35. Layers and layers of potentially buggy code gets run between the
  36. time network data is received, and the time it is understood; and
  37. conversely between the time data is conceived and the time it
  38. gets sent.