WP Manifestindependent plugin directory
manifest / social / private-messaging

PS PM-System WP Registry grade D. High-severity findings · 5 findingsWP RegistryHigh-severity findings · 5 findingsOpen the reportD

Private Benutzer-zu-Benutzer-Kommunikation zur Abgabe von Angeboten, zum Teilen von Projektspezifikationen und zur versteckten internen Kommunikation. Komplett mit Front-End-Integration, geschützten Kontaktinformationen und geschützter Dateifreigabe.

★ 0stars
8release downloads
1.0.6latest · 1mo ago

Install

Download private-messaging.zip From the 1.0.6 release on GitHub, Sep 4, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/power-source/private-messaging/releases/download/1.0.6/private-messaging.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Private Nachrichten fuer ClassicPress. Das PS PM-System gibt Mitgliedern einen geschuetzten Posteingang, direkte Konversationen und private Dateifreigabe direkt im Frontend.

Funktionsumfang

  • Posteingang mit Suche, ungelesenen Nachrichten, gesendeten Nachrichten und Archiv
  • Neue Nachrichten aus dem Posteingang, der Admin-Bar oder per "Message Me"-Schaltflaeche schreiben
  • Konversationen archivieren oder loeschen
  • Lesebestaetigungen je Benutzer aktivieren oder deaktivieren
  • Private Anhaenge wie Bilder, Videos und Dokumente sicher innerhalb einer Unterhaltung teilen
  • Speicherlimit pro Benutzer fuer Nachrichtenanhaenge verwalten
  • Benutzerliste zum Blockieren eingehender Nachrichten pflegen
  • Responsive Frontend-Oberflaeche fuer Desktop und Mobilgeraete

Voraussetzungen

  • ClassicPress 2.6 oder neuer
  • PHP mit den fuer ClassicPress erforderlichen Erweiterungen
  • Ein angemeldeter Benutzer fuer Posteingang, Versand und Dateianhaenge

Installation

  1. Den Ordner private-messaging nach wp-content/plugins/ kopieren und das Plugin in ClassicPress aktivieren.
  2. Im Backend unter Messaging > Settings eine Posteingangsseite auswaehlen oder erstellen lassen.
  3. Die Seite mit dem Posteingang aufrufen und eine Testnachricht zwischen zwei Benutzerkonten senden.
  4. Optional Add-ons in der Add-on-Verwaltung von Messaging aktivieren und ihre Einstellungen pruefen.

Der Posteingang kann auch mit dem Shortcode [message_inbox] auf einer Seite ausgegeben werden.

Bedienung

Nachrichten

Im Posteingang kann eine Unterhaltung geoeffnet, beantwortet, archiviert oder geloescht werden. Die linke Liste zeigt Absender, Betreff, Anhang und Sendezeit; die Unterhaltung selbst erhaelt den groessten Teil der verfuegbaren Flaeche.

Einstellungen

Benutzer verwalten Lesebestaetigungen direkt im Reiter Einstellungen. Bei aktivierter Blockliste wird pro Zeile ein Benutzername eingetragen. Diese Benutzer koennen dem aktuellen Konto keine Nachricht senden.

Anhaenge

Anhaenge sind an die jeweilige Unterhaltung gebunden. Nur Teilnehmer einer Unterhaltung koennen auf deren Dateien zugreifen. Rollen und Speicherlimits werden in den Messaging-Einstellungen verwaltet.

Add-ons

Add-on Zweck
bbPress Integration Fuegt in bbPress-Themen eine Schaltflaeche fuer Direktnachrichten hinzu.
Blacklist Blockiert Nachrichten von eingetragenen Benutzern.
Sendeberechtigungen Beschraenkt den Nachrichtenversand auf festgelegte ClassicPress-Rollen.
Benachrichtigungen Zeigt Benachrichtigungen fuer neue Nachrichten.
WYSIWYG Stellt einen Editor fuer formatierte Nachrichten bereit.
Broadcast Versendet Nachrichten an mehrere bzw. alle Benutzer.
Gruppengespraech (Beta) Ermoeglicht Unterhaltungen mit mehreren Teilnehmern.
Bad Words Filter Filtert konfigurierte Begriffe aus Nachrichteninhalten.

PSOURCE-Integration

PS Community

Wenn PS Community mit dem Medienmodul aktiv ist, erweitert das PM-System die Anhangsansicht:

  • Bilder und Videos lassen sich in der Community-Medienansicht oeffnen.
  • Eigene, kompatible Anhaenge koennen aus einer Unterhaltung in eine eigene PS-Community-Galerie uebernommen werden.
  • Die Galerieauswahl beschraenkt sich auf Galerien des angemeldeten Benutzers; Systemgalerien und fremde Galerien stehen nicht zur Auswahl.

Die Einbindung ist optional. Ohne PS Community bleibt der private Versand und Download von Anhaengen voll funktionsfaehig.

PS Community kann das PM-System ausserdem als Profil-Reiter integrieren. Diese Profilintegration wird von PS Community konfiguriert und setzt voraus, dass beide Plugins aktiv sind.

ClassicPress-Avatare und PS Community

Das PM-System verwendet die ClassicPress-Funktion get_avatar(). Ist der Avatar-Filter von PS Community aktiv, erscheinen Community-Profilbilder deshalb automatisch in Nachrichtenlisten und Unterhaltungen. Gibt es kein verfuegbares Avatarbild, zeigt das PM-System Initialen als Fallback.

bbPress

Mit aktivem bbPress-Add-on koennen Mitglieder aus Themen heraus eine private Nachricht an andere Teilnehmer starten. Die Berechtigungen des PM-Systems gelten weiterhin.

Datenschutz und Sicherheit

  • Nachrichten und Anhaenge sind fuer die Teilnehmer der jeweiligen Unterhaltung bestimmt.
  • E-Mail-Benachrichtigungen und Lesebestaetigungen lassen sich durch Benutzer und Administratoren steuern.
  • Die Datenschutzerklaerung des Plugins beschreibt die gespeicherten Nachrichten-, Status- und Anhangsdaten genauer.
  • Fuer produktive Seiten sollten Rollen, Anhangsberechtigungen, Speicherlimits und die Datenschutzerklaerung vor der Freischaltung geprueft werden.

Entwicklung

Die Styles werden aus assets/main.css erzeugt:

npm install
npm run build

Der Build aktualisiert assets/main.min.css. Lokale Node-Abhaengigkeiten liegen in node_modules/ und werden nicht versioniert.

Lizenz

GPL-2.0-or-later. Siehe die Plugin-Kopfzeile in messaging.php und die Datei readme.txt.

Releases

7 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
1.0.6 latest
Sep 4, 2026 1mo ago
private-messaging.zip
5
Sep 2, 2026 1mo ago
private-messaging.zip
1
Mar 9, 2026 7mo ago
private-messaging.zip
1
Mar 9, 2026 7mo ago
private-messaging.zip
1
Mar 4, 2026 7mo ago
private-messaging.zip
0
Feb 24, 2026 8mo ago
private-messaging.zip
0
Jan 25, 2026 9mo ago
private-messaging.zip
0
D grade

Security

PS PM-System 1.0.6 · audited by WP Registry

High-severity findings.

2 high 2 medium 1 low
Audited release
1.0.6
Findings
5
Worst severity
high
Content hash
63a0bb028759b45b6b7e8fbc…

Findings

  • high Conversation load IDOR (missing participant check)

    auth_bypass

    mm_load_conversation verifies a nonce then decrypts the conversation id and calls render_inbox_message() with no check that the current user is in user_index. Any authenticated user who can supply a valid conversation id (AES ciphertext from UI, or base64 plaintext if OpenSSL is absent) can read all messages and mark the thread read.

    app/controllers/inbox-shortcode-controller.php:145-170

    Recommendation

    Require the current user to be a participant (same check as delete_conversation) before rendering or marking read.

  • high Reply into arbitrary conversation without membership check

    missing_auth

    send_message reply branch loads conversation by posted conversation_id and calls MM_Message_Model::reply() without verifying the sender is in user_index, allowing message injection into others' threads.

    app/controllers/inbox-shortcode-controller.php:323-370

    Recommendation

    Before accepting a reply, assert get_current_user_id() is in the conversation participants list.

  • medium mm_create_table AJAX lacks capability check

    missing_capability

    wp_ajax_mm_create_table only verifies nonce mm_create_table; no current_user_can(manage_options). Any authenticated user who obtains/creates that nonce can trigger DB table creation. Nonce is embedded on the admin upgrade view.

    app/controllers/mm-upgrade-controller.php:182-215

    Recommendation

    Add current_user_can('manage_options') (and prefer check_ajax_referer) before schema changes.

  • medium Words-filter admin AJAX missing nonce (CSRF)

    missing_nonce

    remove_badword, load_badword, and mm_test_regex check manage_options but not a nonce, so a CSRF page can alter/read badword rules or run regex tests as an admin.

    app/addons/words-filter.php:31-80

    Recommendation

    Add check_ajax_referer for all words-filter AJAX handlers.

  • low Encrypt falls back to base64 when OpenSSL missing

    insecure_config

    Without openssl, conversation ids are only base64-encoded, making IDOR trivially exploitable by guessing numeric ids.

    messaging.php:512-535

    Recommendation

    Fail closed or use a pure-PHP AEAD; never base64-only encode identifiers.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.