diff --git a/monkey/monkey_island/cc/models/monkey.py b/monkey/monkey_island/cc/models/monkey.py
index 520b967a0..0b910c84b 100644
--- a/monkey/monkey_island/cc/models/monkey.py
+++ b/monkey/monkey_island/cc/models/monkey.py
@@ -32,6 +32,7 @@ class Monkey(Document):
     critical_services = ListField(StringField())
     pba_results = ListField()
     ttl_ref = ReferenceField(MonkeyTtl)
+    tunnel = ReferenceField("self")
 
     # LOGIC
     @staticmethod
diff --git a/monkey/monkey_island/cc/services/report.py b/monkey/monkey_island/cc/services/report.py
index 9ceb9662a..593bbfdaf 100644
--- a/monkey/monkey_island/cc/services/report.py
+++ b/monkey/monkey_island/cc/services/report.py
@@ -373,8 +373,13 @@ class ReportService:
 
     @staticmethod
     def get_exploits():
+        query = [{'$match': {'telem_category': 'exploit', 'data.result': True}},
+                 {'$group': {'_id': {'ip_address': '$data.machine.ip_addr'},
+                             'data': {'$first': '$$ROOT'},
+                             }},
+                 {"$replaceRoot": {"newRoot": "$data"}}]
         exploits = []
-        for exploit in mongo.db.telemetry.find({'telem_category': 'exploit', 'data.result': True}):
+        for exploit in mongo.db.telemetry.aggregate(query):
             new_exploit = ReportService.process_exploit(exploit)
             if new_exploit not in exploits:
                 exploits.append(new_exploit)