diff --git a/src/rss_parser.py b/src/rss_parser.py
index d2f7844e..f657ead2 100644
--- a/src/rss_parser.py
+++ b/src/rss_parser.py
@@ -60,7 +60,7 @@ def modify_feed(self, feed_content: str, slug: str) -> str:
channel = feed.feed
lines.append(f'
{channel.get("title", "")}')
lines.append(f'{channel.get("link", "")}')
- lines.append(f'{channel.get("description", "")}')
+ lines.append(f'{self._escape_xml(channel.get("description", ""))}')
lines.append(f'{channel.get("language", "en")}')
# Mark as private feed for personal use only
@@ -68,9 +68,9 @@ def modify_feed(self, feed_content: str, slug: str) -> str:
if 'image' in channel:
lines.append(f'')
- lines.append(f' {channel.image.get("href", "")}')
+ lines.append(f' {self._escape_xml(channel.image.get("href", ""))}')
lines.append(f' {channel.image.get("title", "")}')
- lines.append(f' {channel.image.get("link", "")}')
+ lines.append(f' {self._escape_xml(channel.image.get("link", ""))}')
lines.append(f'')
# Process each episode
@@ -93,7 +93,7 @@ def modify_feed(self, feed_content: str, slug: str) -> str:
lines.append('- ')
lines.append(f' {self._escape_xml(entry.get("title", ""))}')
lines.append(f' {self._escape_xml(entry.get("description", ""))}')
- lines.append(f' {entry.get("link", "")}')
+ lines.append(f' {self._escape_xml(entry.get("link", ""))}')
lines.append(f' {entry.get("id", episode_url)}')
lines.append(f' {entry.get("published", "")}')